gpt4 book ai didi

java - 如何使用 Graphics 类填充三角形 (Java)

转载 作者:行者123 更新时间:2023-12-01 19:35:07 25 4
gpt4 key购买 nike

我的目标是能够使用 Graphics 类绘制/填充三角形。我能够填充/绘制一个矩形和一个圆形,但是当我尝试编译我的代码时,出现以下错误。

我知道填充多边形方法接受类型数组,但我不知道除了 .fillPologyon 之外还可以使用什么其他方法来接受我想要的参数。

还有其他我没有尝试过的方法吗?有没有办法转换我的 rttriangle 的宽度和高度,同时又不会弄乱绘制矩形的代码。

DrawArea.java:62: error: no suitable method found for fillPolygon(int,int,int,int)
g.fillPolygon(100, 100, width, height);
^
method Graphics.fillPolygon(int[],int[],int) is not applicable
(actual and formal argument lists differ in length)
method Graphics.fillPolygon(Polygon) is not applicable
(actual and formal argument lists differ in length)
1 error

import java.awt.*;
import javax.swing.*;
public class DrawArea extends JComponent {
private int radius;
private int width; // base for rt trig
private int height;
//private int [] w = new int[]
//private int [] h = new int[];
private String shape;

/**
* constructor for circle
* @param shape string "circle"
* @param r the radius the user entered
*/
public DrawArea(String shape, int r){
this.shape = shape;
radius = r;
}
/**
* constructor for rectangle and right triangle
* @param shape either the string "rectanlge" or "triangle"
* @param w - either the width or the base
* @param h - height of rect or tri
*/
public DrawArea(String shape, int w, int h){
this.shape = shape;
width = w;
height = h;


}
/**
* paint method that draws the selected shape
*/
public void paintComponent(Graphics g){ // Graphic g is and object allows you to set color to green
removeAll();
if(shape.equals("circle")){
//Set color to green
g.setColor(Color.green);
// 100 pixels down 100 pixels over
//How wide and how tall = radius *2 = diamter
//There broth width and height
g.fillOval(100, 100, radius * 2, radius * 2);
}else if(shape.equals("rectangle")){
g.setColor(Color.green);
g.fillRect(100, 100, width, height); //change **************************************
//}else{

}else if(shape.equals("rtTriangle")){
g.setColor(Color.green);
g.fillPolygon(100, 100, width, height);
}
}
}

最佳答案

您可能希望将三角形定义为Polygon,并使用 fillPolygon(Polygon)例如:

Polygon triangle = new Polygon();
triangle.addPoint(40, 55);
triangle.addPoint(60, 55);
triangle.addPoint(50, 35);

g.setColor(Color.green);
g.fillPolygon(triangle);

现在只需使用您的 widthheight 变量,根据需要定义三角形的三个点。

以下是您可以使用的点的示例:

triangle.addPoint(0, height); // bottom-left angle
triangle.addPoint(width, height); // bottom-right angle
triangle.addPoint(width / 2, 0); // top angle

enter image description here

关于java - 如何使用 Graphics 类填充三角形 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com