|
안녕하세요. 제가 생각하는 다음 방법은 어떠신가요?
화면에 x축 y축을 만들었으면 (0,0) 의 위치는 실제 화면 좌표로 (maxx/2, maxy/2) 가 되겠군요. x,y 그래프 상의 좌표로 입력하면 실제 화면상의 좌표로 리턴해주는 함수를 만드세요.
int ToScreenX(int x)
{
return x+(maxx/2);
}
int ToScreenY(int y)
{
return y+(maxy/2);
}
이 함수를 이용해 점을 찍어주면 되겠군요.
for (int i=0; i<30; i++) // 점 30개
{
int x, y;
x = ToScreenX(random(maxx/2));
y = ToScreenY(random(maxy/2));
putpixel(x, y, 15); // 1사분면
putpixel(-x, y, 15); // 2사분면
putpixel(-x, -y, 15); // 3사분면
putpixel(x, -y, 15); // 4사분면
}
dd 님이 쓰신 글 :
: x 축 y 축 만드구 1사분면에 랜덤으로 점 30개 찍고 그걸 각각 2사분면 3사분면 4사분면에 대칭시키는 프로그램을 만드는건데요
: 그 담부터 어떻게 해야할지 도와주셔용..ㅠㅠ
: 또 참고로 좌표계를 직교 좌표계로 바꿔야 할거 같은데 대칭을 시킬라면요..
: 어떻게 해야하죠...
:
:
:
:
: #include <stdio.h>
:
: #include <conio.h>
:
: #include<graphics.h>
:
: void main()
:
: {
:
: float x,y; //변수로 x,y을 설정
:
: int maxx,maxy; //소스에 필요한 각종 변수 선언
:
: int gdriver=DETECT, gmode;
:
: initgraph(&gdriver,&gmode,"c:\\borlandc\\bgi");
:
: maxx=getmaxx();
:
: maxy=getmaxy();
:
: setcolor(15); // x,y 축과 함수를 흰색으로 써줌
:
: outtextxy(maxx-20,maxy/2+20,"X"); // x축이라는것을 알려주기 위함
:
: outtextxy(maxx/2+10,maxy-20,"Y"); // y축이라는것을 알려주기 위함
:
: line(0,maxy/2,maxx,maxy/2);
:
: line(maxx/2,0,maxx/2,maxy); //모니터에 십자가 모양으로 x,y축을 그림.
:
: getch();
:
: closegraph();
:
: }
:
:
|