Java 画罗塞塔形状
我必须用draw.oval函数和draw.arc函数来完成这个项目。不过,我真希望我能按你的方式做。这就是我现在拥有的,但它仍然没有正确排列。有什么见解吗?谢谢Java 画罗塞塔形状,java,math,applet,drawing,Java,Math,Applet,Drawing,我必须用draw.oval函数和draw.arc函数来完成这个项目。不过,我真希望我能按你的方式做。这就是我现在拥有的,但它仍然没有正确排列。有什么见解吗?谢谢 //********************************************************************** // Fish.Java Louis Colucci // Draws a rosetta //*********************************************
//**********************************************************************
// Fish.Java Louis Colucci
// Draws a rosetta
//**********************************************************************
import javax.swing.JApplet;
import java.awt.*;
public class Rosetta extends JApplet
{
public void paint (Graphics page)
{
setBackground (Color.white);
page.setColor (Color.black);
//Draws the body
page.drawOval(360, 360, 360,360);
page.drawArc(360,180, 360,360,360,360);
page.drawArc(360,540, 360,360,360,360);
page.drawArc(525,435, 360,360,360,360);
page.drawArc(525,285, 360,360,360,360);
page.drawArc(195,435, 360,360,360,360);
page.drawArc(195,285, 360,360,360,360);
}
}
像
super.paint(…)
,这是非常非常重要的,如果不这样做,最终会出现图形故障。事实上,使用JPanel
并覆盖其paintComponent
方法,您可以在那里自定义绘制(但不要忘记调用super.paintComponent
)导入java.awt.Color;
导入java.awt.Graphics;
导入java.awt.Graphics2D;
导入java.awt.geom.AffineTransform;
导入java.text.NumberFormat;
导入javax.swing.JApplet;
公共类Rosetta扩展JApplet{
公共空间绘制(图形页){
超级油漆(第页);
page.setColor(Color.black);
int width=getWidth();
int height=getHeight();
int roseWidth=数学最小值(宽度/2,高度/2);
int玫瑰高=玫瑰宽;
int centerX=宽度/2;
int centerY=高度/2;
int x=(宽度-玫瑰宽度)/2;
int y=(高度-玫瑰高度)/2;
第页drawRect(x、y、玫瑰宽度、玫瑰高度);
第页绘制椭圆形(x、y、玫瑰宽度、玫瑰高度);
Graphics2D g2d=(Graphics2D)页面;
浮动角度=30f;
仿射变换t=g2d.getTransform();
变换(仿射变换。getRotateInstance(数学。托拉迪安(角度)、centerX、centerY));
角度=60f;
对于(int-index=0;index<6;index++){
变换(仿射变换。getRotateInstance(数学。托拉迪安(角度)、centerX、centerY));
g2d.drawArc(x+(玫瑰宽度/2),y,玫瑰宽度,玫瑰高度,360,360);
}
g2d.变换(t);
}
}
试试这个:
import javax.swing.JApplet;
import java.awt.*;
public class Rosetta extends JApplet
{
public void paint(Graphics page)
{
final int MID = 130;
final int TOP = 75;
page.drawArc(MID,TOP-76,150,150,210,121);
page.drawArc(MID,TOP+76,150,150,30,120);
page.drawArc(MID+65,TOP+35,150,150,90,120);
page.drawArc(MID-65,TOP+35,150,150,330,120);
page.drawArc(MID-65,TOP-35,150,150,270,120);
page.drawArc(MID+65,TOP-35,150,150,150,121);
page.setColor(Color.red);
page.drawOval(MID-1,TOP,151,151);
}
}
import javax.swing.JApplet;
import java.awt.*;
public class Rosetta extends JApplet
{
public void paint(Graphics page)
{
final int MID = 130;
final int TOP = 75;
page.drawArc(MID,TOP-76,150,150,210,121);
page.drawArc(MID,TOP+76,150,150,30,120);
page.drawArc(MID+65,TOP+35,150,150,90,120);
page.drawArc(MID-65,TOP+35,150,150,330,120);
page.drawArc(MID-65,TOP-35,150,150,270,120);
page.drawArc(MID+65,TOP-35,150,150,150,121);
page.setColor(Color.red);
page.drawOval(MID-1,TOP,151,151);
}
}