java - 使用 JApplet 绘制星星

标签 java

我正在开发一个项目,我必须在小程序中间画一个星星,这是我一直在开发的代码:

    int[] xPoints = { 55, 67, 109, 73, 83, 55, 27, 37, 1, 43 };
    int[] yPoints = { 0, 36, 36, 54, 96, 72, 96, 54, 36, 36 };

    Graphics2D g2d = ( Graphics2D ) g; 
    GeneralPath star = new GeneralPath(); 
    star.moveTo( xPoints[ 0 ], yPoints[ 0 ] ); 

    for ( int count = 1; count < xPoints.length; count++ )
        star.lineTo( xPoints[ count ], yPoints[ count ] );
        star.closePath(); 

    g2d.setColor(color);
    g2d.fill(star); 

它在小程序的左侧绘制了一个星形,我无法修改这些 x,y 点以使其位于中心。而且这些点也不稳定,它们不会画出稳定的星星。如果有人能提供帮助,我会很高兴。

最佳答案

要更改星星的位置,必须为每个点创建偏移量。

int centerX = 0;
int centerY = 0;

通过使用这些,您需要通过添加偏移量来更新点的位置:

star.moveTo(xPoints[0] + centerX, yPoints[0] + centerY);

star.lineTo(xPoints[count] + centerX, yPoints[count] + centerY);

最终代码为:

int centerX = 0;
int centerY = 0;

int[] xPoints = { 55, 67, 109, 73, 83, 55, 27, 37, 1, 43 };
int[] yPoints = { 0, 36, 36, 54, 96, 72, 96, 54, 36, 36 };

Graphics2D g2d = (Graphics2D) g;
GeneralPath star = new GeneralPath();
star.moveTo(xPoints[0] + centerX, yPoints[0] + centerY);

for (int count = 1; count < xPoints.length; count++)
    star.lineTo(xPoints[count] + centerX, yPoints[count] + centerY);
star.closePath();

g2d.setColor(color);
g2d.fill(star);

关于java - 使用 JApplet 绘制星星,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666123/

相关文章:

java - 在 Java 中操作 Windows 文件权限

java - 将值传递给方法然后打印它

java - Quarkus、Hibernate ORM 和 REST - RESTEASY008200 : JSON Binding deserialization error:

java - SQLite 给出 NullPointerException

java - 在哪些情况下使用 getApplicationContext() 函数

java - 如何删除java应用程序中的上下文路径

java - 使用构建器模式更新对象

java - 使用 Java Stream 条件映射到新对象

java - 在 OSX 上启动 JavaFX 应用程序需要什么特别的东西吗?

java - Android - 以编程方式打开微调器(对话框微调器)