(0,0)이 아닌 점을 중심으로 선을 회전하려고합니다.OpenGL의 한 점을 중심으로 선 회선
이 프로그램에서는 glRotatef()
을 사용하지 않고 삼각법을 사용하려고합니다. 그러나 줄의 길이는 항상 바뀝니다.
제안 사항?
이
내 코드입니다 : 그런데public class World implements GLEventListener, KeyListener
{
double xOne = 0.1;
double yOne = 0.1;
double xTwo = 0;
double yTwo = 0.01;
double i = 220.987;
public World()
{
}
public void init(GLAutoDrawable gld)
{
Animator theAnimator = new Animator(gld);
theAnimator.start();
}
public void display(GLAutoDrawable gld)
{
GL gl = gld.getGL();
gl.glEnable(gl.GL_BLEND);
gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glBegin(gl.GL_LINES);
gl.glColor3d(1,0,0);
gl.glVertex2d(xOne ,yOne);
gl.glColor3d(0,0,1);
gl.glVertex2d(xTwo, yTwo);
gl.glEnd();
gl.glFlush();
//UPDATE
}
public void reshape(GLAutoDrawable gLAutoDrawable, int _int, int _int2, int _int3, int _int4)
{
}
public void displayChanged(GLAutoDrawable gLAutoDrawable, boolean _boolean, boolean _boolean2)
{
}
public void keyTyped(KeyEvent ke)
{
}
public void keyPressed(KeyEvent ke)
{
if(ke.getKeyCode() == KeyEvent.VK_SPACE)
{
xTwo = (Math.cos(Math.toRadians(i))+xOne);
yTwo = (Math.sin(Math.toRadians(i))+yOne);
i++;
}
}
public void keyReleased(KeyEvent ke)
{
}
}
, (xOne, yOne)
는 당신이 번역하여이 작업을 수행 할 것 고정 점 보통
죄송합니다. 그 내용을 이해하지 못했습니다. – kimchiboy03
@ kimchiboy03 그건별로 유익하지 않습니다. 도움을 얻으려면 정확하게 이해하지 못하는 것을 알려주십시오. – HolyBlackCat
@ kimchiboy03 나는 당신의 질문에 대답했다. 그러나 나는 당신의 코드를 고치는 것을 선호했을 것 같은 느낌이 들었다. 나는 당신에게 그 제안을하기 위해 나의 대답을 수정했다. –