我当时在Graphics2d和Polygon上做作业,但是我无法搜索(或可能使用了错误的关键字?)我的作业解决方案。
Hoemwork问题屏幕截图:
下面的代码是我尝试的第一种方法,我只看到空白屏幕。在Google上进行搜索后,我意识到我对.scale和.translate的使用是错误的,因此我将其移至.drawPolygon之前,这一次我可以看到该多边形,但这是在放大窗口之后看到的,这意味着在300内可见,最初是300?
import javax.swing.*;
public class PolygonExample extends JFrame{
public PolygonExample(){
super("Drawing Red Polygon");
setSize(300, 300);
setVisible (true);
}
public void paint (Graphics g){
super.paint(g);
int xValue[] = {0, 10, 7, -7, -10};
int yValue[] = {-10, -2, 10, 10, -2};
Polygon polygon = new Polygon(xValue, yValue, 5);
g.setColor(Color.RED);
g.drawPolygon(polygon);
Graphics2D g2d = (Graphics2D) g;
g2d.scale(5.0, 5.0);
g2d.translate(150, 150);
}
public static void main(String[] args) {
new PolygonExample();
}
}
我希望该多边形会绘制在显示区域的中心(300x300内),但是我在屏幕上看不到任何东西。放大窗口后,我可以看到多边形,但它不在我设置的300、300区域内
答案 0 :(得分:0)
import javax.swing.*;
import java.awt.geom.AffineTransform;
public class PolygonExample extends JFrame{
public PolygonExample(){
super("Drawing Red Polygon");
setSize(300, 300);
setVisible (true);
}
public void paint (Graphics g){
super.paint(g);
int xValue[] = {0, 10, 7, -7, -10};
int yValue[] = {-10, -2, 10, 10, -2};
Polygon polygon = new Polygon(xValue, yValue, 5);
g.setColor(Color.RED);
Graphics2D g2d = (Graphics2D) g;
AffineTransform at = new AffineTransform(5., 0., 0., 5., 150., 150.);
g2d.setTransform(at);
g.drawPolygon(polygon);
}
public static void main(String[] args) {
new PolygonExample();
}
}
上面的代码完成了我想做的事情
感谢@MadProgrammer提供的资源