Triangle2D类(Java)
时间: 2023-10-08 10:07:47 浏览: 45
Triangle2D类是Java中用于表示二维三角形的类。它包含以下成员变量和方法:
成员变量:
- Point2D.Double[] vertices:三角形的三个顶点坐标。
方法:
- Triangle2D(Point2D.Double p1, Point2D.Double p2, Point2D.Double p3):构造函数,传入三个点构造三角形对象。
- double getArea():计算三角形的面积。
- double getPerimeter():计算三角形的周长。
- boolean contains(Point2D.Double p):判断点p是否在三角形内部。
- boolean contains(Triangle2D t):判断三角形t是否完全包含在当前三角形内部。
- boolean overlaps(Triangle2D t):判断当前三角形和三角形t是否有重叠部分。
- boolean equals(Object obj):判断当前三角形是否与另一个对象相等。
- String toString():返回当前三角形的字符串表示形式。
使用Triangle2D类可以方便地进行三角形的计算和判断操作。
相关问题
设计一个名为Triangle2D的类,扩展GeometricObject。 这个类包含: 三个名为side1、side2和side3的双数据字段,默认值为1.0到 表示三角形的三条边。 一个无参数构造函数,用于创建一个默认三角形。 一个构造函数,用于创建具有指定的side1、side2和side3的三角形。 所有三个数据字段的访问器方法。 一个名为getArea()的方法,它返回这个三角形的面积。 一个名为getPerimeter()的方法,返回这个三角形的周长。 一个名为toString()的方法,它返回三角形的字符串描述。toString()方法的实现如下: 返回"三角形:side1 = " + side1 + " side2 = " + side2 + " " Side3 = " + Side3; 编写一个java测试程序,提示用户输入三角形的三条边和a 颜色。程序应该用这些边创建一个Triangle2D对象,并设置颜色 使用输入。程序应该显示区域、周长和颜色,要使用class GeometricObject { private String color = "white"; /** Construct a default geometric object */ GeometricObject() {} /** Construct a geometric object with the specified color*/ public GeometricObject(String color) { this.color = color; } /** Return color */ public String getColor() { return color; } /** Set a new color */ public void setColor(String color) { this.color = color; } }
下面是Triangle2D类的实现:
```java
public class Triangle2D extends GeometricObject {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public Triangle2D() {}
public Triangle2D(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public double getArea() {
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public String toString() {
return "三角形: side1 = " + side1 + " side2 = " + side2 + " side3 = " + side3;
}
}
```
下面是测试程序的实现:
```java
import java.util.Scanner;
public class TestTriangle2D {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入三角形的三条边: ");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.print("请输入三角形的颜色: ");
String color = input.next();
Triangle2D triangle = new Triangle2D(side1, side2, side3);
triangle.setColor(color);
System.out.println("面积为: " + triangle.getArea());
System.out.println("周长为: " + triangle.getPerimeter());
System.out.println("颜色为: " + triangle.getColor());
}
}
```
样例输出:
```text
请输入三角形的三条边: 3 4 5
请输入三角形的颜色: 红色
面积为: 6.0
周长为: 12.0
颜色为: 红色
```
java绘制耐克logo
以下是使用Java绘制耐克Logo的示例代码:
```java
import java.awt.*;
import javax.swing.*;
public class NikeLogo extends JPanel {
public NikeLogo() {
setBackground(Color.WHITE);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
int width = getWidth();
int height = getHeight();
// 设置抗锯齿
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 绘制三角形
Path2D triangle = new Path2D.Double();
triangle.moveTo(width / 2.0, 0);
triangle.lineTo(0, height);
triangle.lineTo(width, height);
triangle.closePath();
g2d.setColor(new Color(0xFF1D4D));
g2d.fill(triangle);
// 绘制文字
Font font = new Font("Arial", Font.BOLD, width / 4);
g2d.setFont(font);
g2d.setColor(Color.WHITE);
FontMetrics fm = g2d.getFontMetrics();
String text = "NIKE";
int textWidth = fm.stringWidth(text);
int textHeight = fm.getHeight();
int x = (width - textWidth) / 2;
int y = (height + textHeight) / 2;
g2d.drawString(text, x, y);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Nike Logo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
NikeLogo logo = new NikeLogo();
frame.add(logo);
frame.setVisible(true);
}
}
```
该代码创建了一个继承自JPanel的类NikeLogo,该类重写了其paintComponent方法,用于绘制耐克Logo。在paintComponent方法中,首先设置了绘图环境的抗锯齿属性,然后计算出面板的宽高。接着创建了一个Path2D对象,用于构造耐克Logo的形状,绘制一个三角形,并使用指定颜色填充该三角形。最后,通过设置字体、字体大小、颜色和绘制位置等属性,绘制NIKE文字。
在main方法中,创建了一个JFrame对象并添加了一个NikeLogo对象。最终将该JFrame设置为可见状态,即可显示出绘制好的耐克Logo。需要注意的是,本示例代码仅作为参考,实际的图形绘制可能需要更多的细节处理,如使用渐变色填充等。