코호 곡선
거북이 그래픽
// Header File
#ifndef _TURTLE_H_
#define _TURTLE_H_
#include <vector>
#define TORAD 0.01745f //각도를 라디안으로 바꾸기 위한 (3.14152/180) 의 값
//거북이가 지나간 지점의 좌표를 기억하기 위한 자료
struct Point3D
{
float x, y, z;
Point3D() { x=y=z=0.0f; }
Point3D(const Point3D& pt) { x=pt.x; y=pt.y; z=pt.z; }
Point3D(float ax, float ay, float az) { x=ax; y=ay; z=az;}
};
using namespace std;
typedef vector<Point3D> plist; //Point3D 를 담는 vector 컨테이너
typedef vector<Point3D>::iterator pi; //반복자
class Turtle
{
private:
plist PointList; //거북이가 지나간 모든 지점을 저장할 컨테이너
bool IsUp; //현재 거북이가 들려있는지. 즉, 현재 거북이가 들려 있다면 선은 그려지지 않는다.
float angle; //회전 각도
public:
Turtle(void); //거북이 생성
void SetStartPoint(float x, float y, float z); //거북이가 출발할 시작 위치 좌표
void Forward(float length); //앞으로 몇 length 만큼 진행하는가? 진행 거리만큼 선을 그린다. 단 IsUp == false 일 때만.
void Left(float rotate_angle); //왼쪽으로 rotate_angle 만큼 회전한다.
void Right(float rotate_angle); //오른쪽으로 rotate_angle 만큼 회전한다.
void Up(void); //거북이를 든다.
void Down(void); //거북이를 내려 놓는다.
void MarkPoint(void); //거북이가 지나간 모든 지점을 점으로 표시한다.
};
#endif코호 곡선


알고리즘




Last updated