用JAVA代码写一个心形
时间: 2023-09-22 19:06:19 浏览: 109
一个java2d 写的心的形状
### 回答1:
您好!下面是一个用 Java 代码绘制心形的示例:
```
public class HeartShape {
public static void main(String[] args) {
double x, y, r;
r = Math.cos(Math.toRadians(30));
for (double i = 0; i <= 90; i += 0.1) {
x = 16 * Math.pow(Math.sin(i), 3);
y = 13 * Math.cos(i) - 5 * Math.cos(2 * i) - 2 * Math.cos(3 * i) - Math.cos(4 * i);
System.out.println((int) (x * r) + "\t" + (int) (y * r));
}
}
}
```
这段代码中,我们使用了 `Math.cos()` 和 `Math.sin()` 函数,来模拟心形的曲线。每次循环,程序计算出一个新的 x 和 y 坐标,然后将其输出到控制台。
最终,这些坐标点组成了一个心形的图像。你可以使用任何你喜欢的图形绘制工具,如 JavaFX,Swing 等绘制这个心形图形。
### 回答2:
要用JAVA代码写一个心形,可以使用Java图形库来实现。以下是一个简单的示例代码:
```
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class HeartShape extends JPanel {
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int centerX = width / 2;
int centerY = height / 2;
int radius = Math.min(width, height) / 4;
// 绘制红色的心形
g.setColor(Color.RED);
g.fillArc(centerX - radius, centerY - radius, 2 * radius, 2 * radius, 0, 180);
g.fillArc(centerX, centerY - radius, 2 * radius, 2 * radius, 0, 180);
g.fillArc(centerX - radius / 2, centerY - radius, radius, radius, 0, 180);
g.fillArc(centerX - radius / 2, centerY, radius, radius, 180, 180);
g.fillRect(centerX - radius, centerY - radius / 2, 2 * radius, radius);
g.fillArc(centerX - radius / 2, centerY - radius / 2 - radius, 2 * radius, 2 * radius, 0, -180);
// 绘制白色的心形边框
g.setColor(Color.WHITE);
g.drawArc(centerX - radius, centerY - radius, 2 * radius, 2 * radius, 0, 180);
g.drawArc(centerX, centerY - radius, 2 * radius, 2 * radius, 0, 180);
g.drawArc(centerX - radius / 2, centerY - radius, radius, radius, 0, 180);
g.drawArc(centerX - radius / 2, centerY, radius, radius, 180, 180);
g.drawLine(centerX - radius, centerY - radius / 2, centerX + radius, centerY - radius / 2);
g.drawLine(centerX - radius, centerY + radius / 2, centerX + radius, centerY + radius / 2);
g.drawArc(centerX - radius / 2, centerY - radius / 2 - radius, 2 * radius, 2 * radius, 0, -180);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
HeartShape panel = new HeartShape();
panel.setBackground(Color.WHITE);
frame.add(panel);
frame.setVisible(true);
}
}
```
以上代码会创建一个窗口,并在其中绘制一个红色的心形并用白色绘制边框。可以调整窗口的大小来改变心形的大小。
### 回答3:
用JAVA代码绘制一个心形是一项有趣的任务。下面是一个简单的示例代码,它可以绘制一个基本的心形。
```
import java.awt.*;
import java.awt.geom.*;
public class DrawHeart {
public static void main(String[] args) {
// 创建一个窗口并设置参数
Frame frame = new Frame("Draw Heart");
frame.setSize(400, 400);
frame.setVisible(true);
// 创建一个自定义的Panel对象
MyPanel panel = new MyPanel();
frame.add(panel);
}
}
class MyPanel extends Panel {
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 设置绘图区域的大小和坐标
int width = getSize().width;
int height = getSize().height;
int centerX = width / 2;
int centerY = height / 2;
// 设置心形的参数
int bezierX = centerX;
int bezierY = centerY - 50;
int controlX1 = centerX + 50;
int controlY1 = centerY - 150;
int controlX2 = centerX - 50;
int controlY2 = centerY - 150;
// 绘制心形
GeneralPath path = new GeneralPath();
path.moveTo(centerX, centerY);
path.curveTo(controlX1, controlY1, bezierX, bezierY, controlX2, controlY2);
path.curveTo(controlX2, controlY2, bezierX, centerY + 70, controlX1, controlY1);
path.closePath();
// 设置心形的填充颜色和绘制效果
g2.setPaint(Color.RED);
g2.fill(path);
}
}
```
以上代码使用Java的AWT库和图形绘制工具,通过设置控制点和曲线路径来绘制心形。可以运行代码并在窗口中看到绘制出的心形。
阅读全文