Microsoft PowerPoint - Lec06.ppt [호환 모드]

Similar documents
01-OOPConcepts(2).PDF

PowerPoint 프레젠테이션

Design Issues

설계란 무엇인가?

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

유니티 변수-함수.key

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - Chapter 6.ppt

PowerPoint Presentation

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

05-class.key

Microsoft PowerPoint - ch07 - 포인터 pm0415

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - Lect04.pptx

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

강의10

자바 프로그래밍

PowerPoint Presentation

제 1 강 희망의 땅, 알고리즘

gnu-lee-oop-kor-lec06-3-chap7

초보자를 위한 자바 2 21일 완성 - 최신개정판

PowerPoint Presentation

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Modern Javascript

Microsoft Word - FunctionCall

chap10.PDF

untitled

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint Presentation

PowerPoint Presentation

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

PowerPoint Template

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

Blog

1

Microsoft PowerPoint - 09-Object Oriented Programming-3.pptx

Microsoft PowerPoint - 2강

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - 7-Work and Energy.ppt

11장 포인터

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

5장.key

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

C++ Programming

Microsoft Word - ExecutionStack

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - additional06.ppt [호환 모드]

4.1 힘의모멘트 스칼라공식 4.1 힘의모멘트 스칼라공식 모멘트크기 (resultant moment) 2

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

C# Programming Guide - Types

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

PowerPoint 프레젠테이션

Microsoft PowerPoint 세션.ppt

Secure Programming Lecture1 : Introduction

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

17장 클래스와 메소드

어댑터뷰

PowerPoint 프레젠테이션

Microsoft PowerPoint 장강의노트.ppt

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

쉽게 풀어쓴 C 프로그래밍

C++ Programming

No Slide Title

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

PowerPoint Presentation

11강-힙정렬.ppt

Microsoft PowerPoint - Java7.pptx

쉽게 풀어쓴 C 프로그래밍

제4장 기본 의미구조 (Basic Semantics)

산선생의 집입니다. 환영해요

PowerPoint 프레젠테이션

Week5

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - additional01.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 04-UDP Programming.ppt

JVM 메모리구조

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

슬라이드 1

KNK_C_05_Pointers_Arrays_structures_summary_v02

슬라이드 1

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

쉽게

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

PowerPoint Presentation

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

PowerPoint 프레젠테이션

Transcription:

Computer Graphics Kyoungju Park kjpark@cau.ac.kr http://graphics.cau.ac.kr

Motion examples Topics Object orient programming Vectors and forces

Bounce motion Physical universe Mathematical universe 시간흐를때 X 위치 = x 위치 + x 속도, Y 위치 = y 위치 + y 속도 x 속도는일정 and x 위치가화면바깥이면속도방향전환 y 속도는일정 and y 위치가화면바깥이면속도방향전환 Representation universe

Moving on curves Physical universe Mathematical universe 시작위치가 (beginx, beginy), 마우스입력위치가 (endx, endy) 움직이는길이 y = x^2 을따른다고할때 파라메트릭방정식은 x = t, y = t^2 Representation universe 시간이흐를때 x = y = (distx, disty) 는 (endx, endy) (beginx, beginy)

Object Oriented Programming 객체의상태 : Variables 객체가할수있는일 : Functions Object-oriented programming the marriage of all of the programming fundamentals: data and functionality 예 ) Human Data, Human Function : human class 나 - object

Without an object 자동차가윈도우를가로지르며수평으로움직이고있는pseudo-code Data( 전역변수 ) 차색상, 위치 (x, y), x 속도 Setup 차색상, 위치, 속도초기화 Draw 배경채우기 자동차를위치와색상에따라디스플레이 자동차위치와색상을증가

Using an object OOP - 메인프로그램에서변수와함수를빼내서자동차 object 에저장 - 자동차 object 는데이터 - color, location, speed- 를알것임 -자동차object 는할수있는일 ( 방법-객체안의함수 ) 을알것임 - 자동차는 move 할수있고, display 할수있음 Data (Global Variables): 자동차 object. Setup: 자동차 object 초기화 Draw: 배경채우기 자동차 object display 자동차 object move

Object template = class

Class name Class Name: 이름은 class *** 명시 이름선언후에 { 와 } 괄호 괄호안에클래스를위한모든코드포함 이름은일반적으로대문자사용 Data: 변수의수집으로 instance variable 이라고부름 Object 의 instance 들이가지고있는변수임.

Constructor: 클래스내의특별한함수로서 object 의 instance 를생성 Object 를어디에서어떻게셋업하는지를명시 프로세싱의 setup() 함수와유사 이클래스로각객체를만들때사용됨 클래스와동일한이름을가지고있음 new 라는연산자를사용하여불러일으키면서부를수있음."Car mycar = new Car(); Functionality: Methods 를작성함으로써객체의 function 을추가할수있음 void setup() { } void draw() { } class Car { }

Using an object Step 1. object 변수를선언 int var; Car mycar; Step 2. object 를초기화 var = 10; mycar = new Car(); 객체를 constructor 인 new 를사용하여생성 Step 3. Using an object 객체안의함수를부르는것으로 dot 을사용 variablename.objectfunction bj ti mycar.draw(); mycar.display();

Constructor Arguments 두개의자동차객체를생성 Car mycar1 = new Car(); Car mycar2 = new Car(); Constructor method 안에 arguments 를놓음으로써자세한객체생성 빨간자동차는 (0,10) 위치에 1 속도로생성 파란자동차는 (0,100) 위치에 2 속도로생성 Car mycar = new Car(color(255, ( 0, 0), 0, 100, 2); Car(color tempc, float tempxpos, float tempypos, float tempxspeed){ C = tempc; Xpos = tempxpos; Ypos = tempypo니 Xspeed = tempxspeed; p }

Class 는데이터타입이다! OOP 하나의 Class 동일 class 에둘또는셋이상의 objects Class 는 integer 나 float 와같은데이터타입 References http://www.processing.org/learning/objects/

Vectors Points : 위치 Vectors : 두포인트사이의위치차이 화면을가로지르는사각형 Position: 객체의위치, points Velocity: 시간당객체의위치변화율, vectors Acceleration: 시간당객체의속도변화율, vectors 기하학적으로위치는 point 이고속도 / 가속도는 vector 임 특정원점을시작점으로가정할때, 위치는원점부터 point 까지의차이를나타내는벡터 velocity = velocity + acceleration location = location + velocity Draw things at location

Vectors Review 벡터에스칼라로곱셈 방향변화없이크기확장 ka = k a 벡터크기는피타고라스정리벡터기는피타라정리사용

Vector 연산 review 덧셈 한벡터의꼬리를다른벡터의시작에놓음 그때삼각형을완성하는벡터가덧셈합임 Vector 덧셈은교환가능:

a+b+c+d+e 를그리면?

Vector 연산 review 마이너스 (negative) 연산은 뺄셈은 b 벡터의끝부터 a 벡터의끝을연결하는벡터 (a, b 가같은원점일때 )

Vectors 덧셈 뺄셈 u = v + w u x = v x + w x, u y = v y + w y u = v - w u x = v x -w x, u y = v y w y 곱셈 v = w*n v x = w x *n, v y = w y *n v = w/n v x = w x /n, v y = w y /n

벡터크기 Vectors v = sqrt ( v x *v x + v y *v y ) 벡터 normalize : 크기를 1 로바꾸기 û = u / u

2D 벡터클래스 - PVector public class PVector { public float x; public float y; public float z; PVector(float x_, float y_, float z_) { x=x;y=y;z=z; x_; = y_; = z_; } PVector(float x_, float y_) { x = x_; y = y_; z = 0.0; } } /**functionality to go here -- see below**/ Constructor 가둘이상인경우를 overloaded 라고함 Argument 가둘일때 2D 벡터, Argument 가셋일때 3D 벡터

Pvector methods Instance methods PVector v1 = new PVector(0,1); Pvector v2 = new Pvector(1,0); v1.add(v2); Static methods PVector v1 = new PVector(0,1); PVector v2 = new PVector(1,0); PVector v3 = PVector.add(v1, v2);

Public, private Encapsulation 자동차를 object 로여길때, 자동차의내부구조는숨기고단지 car.drive() 와 car.turn() 만외부에서호출 사용자는객체의작동구조를알필요없음 객체의작동구조를변경하더라도같은 function 을사용자는계속사용 자동차객체호출자는차를해체할수없음

PVector http://www.processing.org/reference/pvector.html Methods set() : Sets the x,y,z componets of fthe vector get() : Gets the x,y,z components of the vector mag() : Calculate the magnitude (length) of the vector add() : Adds one vector to another sub() : Subtracts one vector from another mult() : Multiplies the vector by a scalar div() : Divides the vector by a scalar dist() : Calculates l the Euclidiean distance btw two points dot() : Calculates the dot product cross() : Calculates the cross product normalize() : Normalizes the vector limit() : Limits the magnitude of the vector anglebetween() : Calculates the angle btw two vectors array() : Return a representation of the vector as an array

Examples Hello motion Gravity anglebetween