Mister_Q
2009. 12. 29. 12:11
//======================================================================
//. 하트 그리는 방정식
//. 17x²-16|x|y+17y²=225
//. 위 방정식의 궤적을 그리면 하트모양이 나온다.
CClientDC dc(this);
double r = 0, t = 0; //. 극 좌표
double x = 0, y = 0; //. 평면 좌표
double e = 0; //. 에러수 체크
//. 원주율 * 2
while(t < 6.28)
{
if(t > 3.14) r = sqrt(225.0 / (17.0 + 8 * sin(2.0 * t)));
else r = sqrt(225.0 / (17.0 - 8 * sin(2.0 * t)));
//. 평면 좌표계를 극좌표계로 치환한다.
//. x = r * cos(0); y = r * sin(0);
x = r * sin(t);
y = r * cos(t);
////. 에러체크
//e = 17.0 * x * x - 16.0 * fabs(x) * y + 17.0 * y * y - 255;
//. 해당 평면좌표에 픽셀을 찍는다.
dc.SetPixel((x * 50) + 500, (y * 50) + 200, RGB(255, 0, 0));
//. 정밀도( 숫자가 작아질수록 점이 정밀해준다. )
t += 0.0001;
}
//======================================================================
출저 : 게임 코디(gamecode.com) 사이트 검은괭이님
http://www.gamecodi.com/board/zboard.php?id=GAMECODI_Tip&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=178
|