如何在java中绘制星星?让我困惑的部分是 g.drawline 中的坐标,因为我不明白它们是按什么顺序写的,以及如何了解绘制星星的正确坐标。
这是我从我的代码中得到的。
import java.awt.*;
import javax.swing.*;
class Pantalla extends Frame{
public static void main(String[]args)
{
Pantalla p=new Pantalla();
JOptionPane.showMessageDialog(null,"bienvenido sistema de algo");
}
public Pantalla()
{
this.setSize(1600,900);
setBackground(new Color(200,0,180));
this.setVisible(true);
}
public void paint(Graphics g)
{
g.setColor(new Color(255,0,0));
g.drawString("Hola",400,100);
g.drawLine(400,100,800,100);
g.drawLine(500,150,450,200);
g.drawLine(500,150,550,200);
g.drawLine(350,100,200,250);
}
}
您好,虽然您使用的是 drawLine 方法,但另一种选择是使用 drawPolygon,这是一种直接传递坐标和点数的方法。
获取坐标的示例,您可以基于如下图所示的平面:
有关 drawPolygon 方法的更多信息https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics.html#drawPolygon-int:A-int:A-int-
左上角为点(0,0),即初始点
为了回答您的问题,我将举一个例子:
那么该指令将绘制如下内容:
我建议你通过编程制作一个多边形,然后绘制它:
因此,您可以轻松更改大小、位置、倾斜度、制作副本等……想象一下手动计算 5 个 8 角星的点数……太疯狂了。
由于多边形的中心现在是(具有相对于框架的宽度和高度的坐标),您可以尝试更改窗口的大小,您会看到一颗漂亮的星星在移动。
为了更好地看到它,我建议您在方法开始时使用清洁屏幕,
fillRect
否则之前的将被绘制。我将添加此代码的输出附加到您的输出: