no image
OpenGL 콜백 프로그래밍
OpenGL 콜백 프로그래밍 저번 포스팅에서는 윈도우 뷰포트 설정을 살펴보았다. 윈도우 뷰포트 설정을 하지 않으면 자동으로 뷰포트 설정이 되는데, 사용자가 창 위치를 변경한다던지, 창 크기를 늘리는 등의 행위를 했을 때 동적으로 반응하는 콜백함수가 있어야 물체가 왜곡되지 않는다. 오늘 포스팅에서는 이러한 사용자의 행위에 대해 동적으로 반응하는 콜백 프로그래밍을 다루려고 한다. 프로그래머는 리세이프 콜백(Reshape Callback) 함수를 통해 이러한 이벤트에 어떻게 대응할 것인지를 원하는 대로 명시할 수 있다. 리셰이프 이벤트를 등록하기 위한 콜백 함수 프로토타입은 다음과 같다. void glutReshapeFunc(void (*func) (int width, int height)); 다소 복잡해 보..
2015.11.22
no image
OpenGL 사각형그리기 예제2 - glViewport
OpenGL 사각형그리기 예제2 소스코드 #include #include #include #include void MyDisplay(){ glClear(GL_COLOR_BUFFER_BIT); // GL상태변수 설정, 프레임 버퍼를 초기화 // 초기화 될 색은 glutClearColor에서 사용된 색 glViewport(0, 0, 300, 300); glColor3f(1.0, 1.0, 1.0); // glBegin(GL_POLYGON); // 입력요소 기본정의 glVertex3f(-0.5, -0.5, 0.0); glVertex3f(0.5, -0.5, 0.0); glVertex3f(0.5, 0.5, 0.0); glVertex3f(-0.5, 0.5, 0.0); glEnd(); glFlush(); } int m..
2015.11.22
no image
OpenGL 사각형 그리기 예제
OpenGL 간단한 사각형 그리기 예제 소스코드 #include #include #include #include void MyDisplay(){ glClear(GL_COLOR_BUFFER_BIT); // 사각형은 glBegin()과 glEnd() 사이에서 정의됨 glBegin(GL_POLYGON); // 아래 제시된 Vertex들이 다각형(Polygon)을 이루고있음을 정의 // 윈도우 한가운데는(0,0,0)이며 윈도우 우상단은(1,1,0)이다. glVertex3f(-0.5, -0.5, 0.0); glVertex3f(0.5, -0.5, 0.0); glVertex3f(0.5, 0.5, 0.0); glVertex3f(-0.5, 0.5, 0.0); // 이때 Vertex로 그리는 순서는 시계 반대방향임을 주의..
2015.11.22
GLUT의 윈도우 기능
함수명 기능설명 윈도우 초기화 glutInit() 윈도우 운영체제와 세션 연결 glutInitWindowPosition() 윈도우 위치 설정 glutInitWindowSize() 윈도우 크기 설정 glutInitDisplayMode 디스플레이 모드 설정 윈도우 관리 glutSetWindowTitle() 윈도우 타이틀 설정 glutCreateWindow() 새로운 윈도우 생성 glutReshapeWindow() 크기 변경에 따른 윈도우 조정 glutPostRedisplay() 현 윈도우가 재생되어야 함을 표시 glutSwapBuffers() 현 프레임 버퍼 변경 1. glutInit(int *argc, char **argv)GLUT 라이브러리를 초기화 한 후 윈도우 시스템과 세션을 연다. 2. glutIn..
2015.11.22
html
http://charlesk.tistory.com/14
2015.11.14
[소프트웨어 공학] StateDiagram(상태 다이아그램) 이란 ?
StateCharts Diagram 이란 ? “하나의 객체를 대상으로 생존기간 동안 가질 수 있는 객체 상태의 변화를 분석한 다이어그램”이다.이 다이어그램은 객체 상태와 함께 객체 상태 변화를 유발하는 이벤트와 동작(Action/Activity)도 함께 정의한다. 이러한 요소가 정의된 StateCharts Diagram을 통해 “객체 O는 이벤트E에 의해 상태S로 변화하고 그 상태에서 A라는 행위를 한다” 라고 말할 수 있다. StateCharts Diagram을 사용하는 목적- 객체 상태변화를 상세히 분석 할 수 있다: 상태차트 다이어그램은 객체 하나를 대상으로 생성-소멸 기간 중에 다양하게 가질 수 있는 상태를 분석하는 목적으로 작성된다. 시스템에서 많은 객체들은 생성에서 소멸 단계까지 간단한 상태를..
2015.11.13
자바 import 주석 한글 깨짐 현상 해결
해결법 1.Window - Preferences 을 들어간다Content Types - Java Source File - Default encoding에서 UTF-8 이라고 적어주고 Update 를 누르면 해결 해결법 2.Window - Preference 를 들어간다General - Workspace - Text file encoding 선택란에서 UTF-8 설정 해결법 3.Window - Preference 를 들어간다General - Content Type - Text - Java Source File 을 선택한 후마지막 칸의 Default encoding을 EUC-KR 로 변경 후에 Update를 선택
2015.11.09
[소프트웨어 공학] 소프트웨어 테스트원칙
소프트웨어 테스트원칙 1. 테스팅은 결함이 존재함을 밝히는 활동이다- 테스팅은 결함이 없음을 증명하기 위한 활동이 아니다. 결함을 발견 해냈을 때, 그것은 성공적이라고 말할 수 있다. - 결함이 발견되지 않았다고 해서 해당 소프트웨어에 결함이 없다고 증명된 것은 아니다. 2. 완벽한 테스팅은 불가능하다.- 한 프로그램은 무한 경로, 무한 입력값, 무한 타이밍이 존재한다.- 완벽한 테스팅을 하기 위한 노력 대신, 리스크가 큰 영역에서 효율적인 테스트를 하는 것이 중요하다. 3. 테스팅은 개발 초기에 시작된다.- 테스트 활동은 소프트웨어 생명주기와 함께 하며 각 생명주기 단계의 상응하는 목적을 달성하기 위한 테스트를 수행한다.- 결함은 일찍 발견할 수록 소요되는 인적, 기간적 리소스가 줄어들고, 개발 후반부..
2015.11.08
[소프트웨어 공학] 소프트웨어 테스팅의 종류
소프트웨어 테스팅의 종류 Black Box Testing (블랙 박스 테스팅): 블랙 박스 테스팅이란 시스템의 내부 설계를 전혀 고려하지 않는 테스팅으로서 고객의 요구사항 등이 담긴 프로그램 명세서를 기반으로 테스팅된다. White Box Testing (화이트 박스 테스팅): 화이트 박스 테스팅이란 블랙 박스 테스팅과는 다르게 시스템의 내부 설계를 고려한 테스팅으로서 시스템의 코드 내부의 로직에 대한 지식을 기반으로 수행된다. 이 테스팅을 수행하기 위해서는 내부적으로 소프트웨어와 코드가 어떻게 동작하는지 알고있어야하며, 커버리지(Coverage)를 통하여 테스팅된다. 커버리지의 종류로는 Path, Statement, Decision, Condition, DC/CD, MC/DC, Multiple Cond..
2015.11.08
[인공지능] 엔트로피(Entropy) 와 정보이득(Information Gain) 계산
엔트로피 (Entropy) 엔트로피(Entropy)는 주어진 데이터 집합의 혼잡도를 의미한다. 즉, 주어진 데이터 집합에서 서로 다른 종류의 레코드들이 섞여 있으면 엔트로피가 높고, 같은 종류의 레코드들이 섞여 있으면 엔트로피가 낮다. 엔트로피 값은 0에서 1사이의 값을 가지며, 가장 혼합도가 높은 상태의 값이 1이고, 반대는 0이다.(하나의 레코드로만 구성된 상태의 값) Decision Algorithm에서는 엔트로피가 높은 상태에서 낮은 상태가 되도록 데이터를 특정 조건을 찾아 나무 모양으로 구분해나간다. 엔트로피 값 계산 방법 (S: 주어진 데이터들의 집합, C: 레코드(클래스) 값들의 집합, freq(Ci,S): S에서 Ci에 속하는 레코드의 수, |S|: 주어진 데이터들의 집합의 데이터 개수) ..
2015.11.08
[인공지능] Machine Learning - Decision Trees (머신러닝 결정트리)
Decision Trees 결정 트리는 어떤 항목에 대한 관측값과 목표값을 연결시켜주는 예측 모델에서 분류를 예측하기 위해 사용된다. 이는 통계학과 데이터마이닝, 기계학습에서 사용하는 예측 모델링 방법 중 하나이고, 의사를 결정하는데 있어서 아래 예시들 처럼 나무가지 형태로 내려가는 것이다. 결정 트리의 과정은 다음과 같이 정의 될 수 있다. 기존 데이터 ↓ 학습 모델 구축 ↓ 예측 사용 가능 (input에 따른 output 도출) 아래 모델은 타이타닉호 탑승객의 생존 여부를 나타내는 결정트리이다. (sibsp는 탑승한 배우자와 자녀 수를 의미) 잎 아래의 숫자는 각각 생존 확률과 탑승객이 그 잎에 해당될 확률을 의미한다. 위 그림은 오늘 외출을 할지 말지 결정하는 결정트리이다. 루트노트에서부터 적절한 ..
2015.11.08
[인공지능] Supervised learning vs Unsupervised learning (교사학습 vs 비교사학습)
Supervised learning (교사학습, 감독학습, 지도학습) Supervised Learning 개념 교사학습은 훈련 데이터(Training Data)로 부터 하나의 함수를 유추해내기 위한 기계학습(Machine Learning)의 한 방법이다. 훈련 데이터는 일반적으로 입력 객체에 대한 속성을 벡터 형태로 포함하고 있으며 벡터에 대해 원하는 결과가 무엇인지 표시되어있다. 이렇게 훈련 데이터로부터 유추된 함수 중 연속적인 값을 출력하는 것을 회귀분석(Regression)이라고 하고, 주어진 입력 벡터가 어떤 종류의 값인지 표식하는 것을 분류(Classification) 이라고 한다. 교사학습기는 훈련 데이터로부터 주어진 데이터에 대해 예측하고자 하는 값을 올바로 추측하는 역할을 한다. 이를 수행..
2015.11.08