프로그래밍[Univ] 343

[Graphics] 좌표계

* 모델 좌표계(MCS) - 모델링 : 물체 정점을 정의 - 좌표계 단위 : 임의로 설정하며 부동소수의 정밀도를 가지고 있음 - 모델 좌표계 = 지역 좌표계 - 원점 및 축방향은 물체마다 서로 다르며 설계상의 편의를 따른다. * 전역좌표계(WCS) - 여러 물체들이 있으면 여러개의 지역좌표계가 존재한다. - 이를 통합하여 위치를 나타낼 필요성이 있다. - 이 좌표계가 전역 좌표계이다. * 시점좌표계(VCS) - 바라보는 시점에 따라 물체가 다르기 때문에 시점의 좌표도 필요하다. * 변환 행렬의 의미(in 좌표계) - GL의 관점 > WCS와 MCS를 분리 > 변환을 해도 MSC를 기준으로 하는 좌표는 불변 > 좌표계 이동으로 간주 1) 이동 : WCS를 기준으로 MCS가 정해진 양 만큼 이동 2) 회전 ..

[Graphics] 점의 좌표 표현 및 변환

* 3차원 물체 표현 - 메쉬를 이용해경계면을 그린다.(경계면 표현을 통해 3D생성) - 삼각형 메쉬 : 평면이 보장되고 사격형에 비해 2배 느린 속도로 그려진다.(속도가 느리다) - 사각형 메쉬 : 평면이 보장되지 않는다. - 삼/사각형 메쉬이외에 평면, 다각형 메쉬등 다양하게 존재한다. - 매쉬가 많아질 수록 그리는 속도가 느려진다. - 가변 모델링(곡면표현을 섬세하게 할수록, 메쉬의 양이 증가하고 세밀한 표현이 가능하다) * 렌더링 모델 - Wire frame : 선 기반으로 그리는 속도가 빠르다 - Solid frame : 면 기반으로 속도가 느리다. 외형 확인을 위해 가끔씩 사용한다. * 어파인 공간(Affine space) - In vector space : V+V = V // S*V = V를..

[Graphics] Window/View port , 좌표계 , Distortion

1. Window / View port - Window는 프로그램이 나타나는 전체 창을 뜻한다. - View Port는 Window 내부에서 그림을 그리기 위해서 할당한 조각조각을 나타낸다. 2. 좌표계 - GL과 GLUT에서 사용하는 좌표계는 다르다. - GL은 Screen 좌상단을 (0,0)을 잡고 x좌표, y좌표, 가로길이, 세로길이 순으로 값을 받는다. (빨강선) - GLUT는 Window 좌하단을 (0,0)을 잡고 x좌표, y좌표, 가로길이, 세로길이 순으로 값을 받는다. (녹색선) 3. Distortion(왜곡) - 사용자의 입력(Reshape)등으로 인해서 물체가 원하지 않는 것으로 변형될때가 있다. - 이를 방지하기 위해서는 View port를 재정이하고, View volume을 재정의해야..

[Graphics] 입력 모드

* 입력 모드 - Measure : 입력장치가 응용 프로그램으로 넘겨주는 값 - Trigger : Measure값을 가져가라는 신호 ex) 그림판에서 특정 물체를 선택할 때 : 마우스의 좌표(Measure), 마우스 클릭(Trigger) ⓐ Request Mode - 프로그램이 실행중에 입력값(Measure)를 요구하는 방식 - 프로그램이 실행중에 Measure process에 요청을 보내 사용자에게 입력값을 받는다. - 입력값을 모두 작성했다는 신호(Trigger)를 보내면 Measure Process는 Measure 값을 프로그램에 보낸다. ex) 대화형 프로그램 ⓑ Sample Mode - 프로그램이 실행중에 입력값(Measure)를 요구하면 Measure Process는 미리 준비된 Measure..

[컴퓨터보안] 해쉬 함수

* 해쉬함수 - 데이터를 작은 크기의 데이터로 제가공하는 것 - 암호해쉬함수 : 해쉬함수에 보안적 특성을 추가한 것 - 암호해쉬 함수의 특징/성질 ⓐ 압축(Compression) : 메세지의 길이는 입력 메세지의 길이보다 작다. ⓑ 효율성(Efficiency) : 어떠한 메세지라도 쉽게 해쉬값을 계산해야 한다. ⓒ 단방향(One-way) : 해쉬값이 주어졌을 때, 이를 이용해 본래의 값을 찾는 것은 불가능(일정 시간내에 불가능)해야한다. - 긴 문장을 짧게 고친 만큼 해쉬함수에서는 충돌이 발생하게 된다. 이 충돌은 해쉬함수의 안전성과 연관이 깊다. ~ 공격자가 같은 해쉬값을 출력해주는 2개의 문장을 안다면, 바꿔치기 공격이 가능하다. - 충돌 방지 법에는 2가지 종류로 나눠서 생각한다. ⓐ 약한 충돌방지..

[컴퓨터보안] 공개키 알고리즘

* 공개키 암호(Public key cryptography) - 비대칭 암호라고도 한다. * 공개키 암호에서의 키 - 트랩 도어의 단방향 함수에 기반을 둔다. - 한 방향으로의 계산은 쉬우나 다른방향으로의 계산은 힘들다. - 공개키와 개인키의 한 쌍을 만들어 낸다. > 공개키 : 메세지를 암호화 하는데 사용하는 키 ( 모두에게 공개 되있다. ) > 개인키 : 메세지를 복호화 하는데 사용하는 키 ( 개개인 만이 알고 있다. )- 특정사람의 공개키로 암호화된 암호는 그 사람의 개인키로만 복호화가 가능하다. * Knapsack 암호체계 ⓐ Knapsack problem(= General Knapsack problem) - N개의 가중치의 집합 {W0, W1, ... , Wn-1}과 특정값 S가 주어졌을때, 가..

[Architecture] Memory part 2

* Memory Map - ROM, RAM, I/O port의 주소를 어디에 얼마만큼 할당할지를 정해 놓은 지도이다. - Memory map은 Main board designer가 설계하며, 그 범위는 제각각이다. - 회로를 보고 메모리 맵을 계산해 내는 능력에 중점을 두고 설명하였다. 예를 살펴본다. 예1) 예2) 예3) 그림의 크기가 작을 수 있으니 클릭하여 보기 바란다. * Controller E-clock - 마지막 예를 보면 CPU에 E값이 있는 것을 확인 할 수 있다. - E-clock은 Address transition time에 엉뚱한 값을 출력할 가능성이 있다. - 이를 방지하기 위해서 E-clock을 별도로 두게 된다. - Address transition time에 E-clock을 0..

[Architecture] Memory part 1

* 싱글 보드 컴퓨터 - 컴퓨터의 3대 요소, CPU, Memory, I/O 포트를 하나의 보드에 구현한 기본적인 기능만을 갖고 있는 컴퓨터 * 메모리 Basic - CPU가 수행할 프로그램과 데이터가 저장된다. - 메모리를 다루는 주체는 CPU이며, CPU는 메모리에 Read와 Write연산을 한다. - "주/보조", "휘발성/비휘발성", "Static/Dynamic", "RAM/ROM" 등으로 다양하게 구분된다. - RAM의 특성을 갖춘 ROM인 EPROM, EEPROM, Flash등도 존재한다. - CPU가 메모리의 특정 위치를 가르키기 위해서 메모리 맵, 어드레스 디코딩등이 가능해야 한다. * 용어 - 메모리 셀 : 1bit 정보를 저장하는 저장 단위 - 워드 : 메모리에 한번에 저장하거나 인출할..

[Graphics] OpenGL API

* 그래픽 분야 표준화 Guide Line - Host machine independence : 동일 프로그램을 다양한 H/W에서 사용 가능해야 한다. - Device Independence : I/O Device 종류가 달라도 프로그램 명령은 동일해야 한다. - Programming Language Independence : 프로그램 작성에 아무 언어를 사용해도 된다. - Operator Portability : 사용법을 쉽게 터득 할 수 있어야 한다. * Graphics Primitives(기본요소) & Attribute(외양) - 기본요소 : 점, 선, 채움 영역, 꺽은선, 표시 꺽은선, 문자 - 외양 : 겉모양(Aspect), 같은 기본요소라도 패턴 색상, 두께 등을 다르게 하여 다양한 형태를 만..