awt轮廓形状,带有字符g.draw java
所以基本上我需要制作星号形状,如图所示:
这就是我目前的解决方案
import java.applet.Applet;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Stroke;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ThreePointTen extends Applet{
public void init(String[] a) {
}
public void paint(Graphics g){
char a = '*';
//square
g.drawString("**********", 25, 25);
g.drawString("* *", 25, 35);
g.drawString("* *", 25, 45);
g.drawString("* *", 25, 55);
g.drawString("* *", 25, 65);
g.drawString("* *", 25, 75);
g.drawString("* *", 25, 85);
g.drawString("* *", 25, 95);
g.drawString("**********", 25, 105);
//oval
g.drawString("***", 175, 25);
g.drawString("* * ", 165, 35);
g.drawString("* * ", 158, 45);
g.drawString("* * ", 158, 55);
g.drawString("* * ", 158, 65);
g.drawString("* * ", 158, 75);
g.drawString("* * ", 158, 85);
g.drawString("* * ", 165, 95);
g.drawString("***", 175, 105);
}
}
我基本上只是在猜测如何制作每个形状以及它们的去向。这种方法极其缓慢且效率低下。我想知道是否有可能使用g.draw制作一个形状,然后使用一些方法将其与一个角色对齐
# 1 楼答案
您可以创建一个特殊的
Stroke
,它在内部由这些星号/星星组成。然后,您可以使用stroke.createStrokedShape(shape)
创建一个新的形状,该形状表示另一个形状,并使用该笔划绘制在http://www.jhlabs.com/java/java2d/strokes/有一个这样一个笔划的(Apache许可)实现(也包含在下面的代码中,带有链接和版权信息)
结果可能是这样的:
通过以下独立示例创建: