그래서 깃발을 그릴 프로그램의 별을 만들기 위해 노력하고 있습니다. 저는 Java Applet 클래스에 꽤 제한되어 있습니다. 프로세스가 다른 중심을 가진 모든 별에 대해 동일해야하므로 X 및 Y 값이있는 메서드에 중심을 전달한 다음 다각형을 사용하여 중심에서 각도를 기반으로 그립니다. 문제는 나오는 모양이 별 모양이 아님을 말합니다.사인과 코사인을 사용하여 별을 만들려고하는데
public void paint(Graphics g)
{
super.paint(g);
Polygon star= new Polygon();
int radius=20;
int roundX=(int)Math.round(radius*Math.cos(Math.toRadians(54)));
int roundY=(int)Math.round(radius*Math.sin(Math.toRadians(54)));
int originX=100,originY=100;
//int radius=20;
int topY=originY+radius;
int bottomLeftX=originX+roundX;
int bottomY=originY-roundY;
int middleY=originY+(int)Math.round(radius*Math.sin(Math.toRadians(18)));;
int midRightX=originX+(int)Math.round(radius*Math.cos(Math.toRadians(18)));;
int midLeftX=originX-(int)Math.round(radius*Math.cos(Math.toRadians(18)));
int bottomRightX=originX+roundX;
int bottomRightY=middleY-roundY;
star.addPoint(originX, originY);
star.addPoint(originX, topY);
star.addPoint(bottomLeftX, bottomY);
star.addPoint(midRightX, middleY);
//star.addPoint(midLeftX, middleY);
//star.addPoint(bottomRightX, bottomY);
//star.addPoint(originX, topY);
g.drawPolygon(star);
}
따라서 왼쪽 하단의 점은 가운데에서 234도, 또는 x 축에서 54 도가되어야합니다. 이 중 하나를 코딩하고 조작을 변경하면 (+ 또는 -) 의도 한 것과 반대 방향으로 촬영하는 것처럼 보입니다. 중심점은 중심보다 18도 높아야하지만, x 축과 거의 비슷하게 보입니다. 나는 별을 가까이에 가지기 위해 그것을 꼬집어 볼 수 있는지 알아보기 위해 점을 하나씩 사용하지 못하게했지만, 눈가리개를 마시고 취한 상태에서 조각하는 것과 같습니다.
내가 뭘 잘못했는지 알 수있게 도와 주시면 크게 감사하겠습니다.
당신이 원하거나 기대하고있는 종류의 이미지 스케치가 도움이 될 수 있습니까? –
* "Java Applet 클래스에 상당히 제한되어 있습니다."* 1) 애플릿을 코딩하는 이유는 무엇입니까? 교사가 지정했기 때문에 [CS 교사가 ** Java 애플릿 교육 **을 중단해야하는 이유] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should?hl=ko)를 참조하십시오. -stop-teaching-java-applets /)를 사용합니다. 2) [Java Plugin support deprecated] (http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/) 및 [Plugin-Free Web로 이동] (https://blogs.oracle.com/java-platform-group/moving-to-a-plugin-free-web). –