Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在applet上绘制一个旋转矩形_Java_Applet_Drawing - Fatal编程技术网

Java 在applet上绘制一个旋转矩形

Java 在applet上绘制一个旋转矩形,java,applet,drawing,Java,Applet,Drawing,我必须在我的小程序上创建一个旋转矩形,它是如何完成的? 矩形应围绕平面上的一个连接点旋转。 这就是我到目前为止所做的: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import javax.swing.JApplet; public class MainApplet extends JApplet { Font bigFont; Color redColor; Col

我必须在我的小程序上创建一个旋转矩形,它是如何完成的? 矩形应围绕平面上的一个连接点旋转。 这就是我到目前为止所做的:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JApplet;

public class MainApplet extends JApplet {
    Font bigFont;
     Color redColor; 
     Color weirdColor; 
     Color bgColor;

    @Override
     public void init()  
     { 
          bigFont = new Font("Arial",Font.BOLD,16);
          redColor = Color.red;
          weirdColor = new Color(60,60,122);
      setBackground(bgColor);
     }

    @Override
     public void stop() { }

    @Override
     public void paint(Graphics g)  
     { 
      g.setFont(bigFont); 
      g.drawString("Shapes and Colors",80,20);     
      g.setColor(redColor);
      g.drawRect(100,100,100,100);
      g.fillRect(100,100,100,100);
     }
}

我不打算为您编写小程序,但我将为您提供一些开始步骤:

在您的init中:

  • 设置一个计时器,每次都调用刷新方法
  • 将全局计数器设置为0
在刷新方法中:

  • 将计数器增加1(可能是mod 360,使其保持在0-359范围内)
  • 调用重新绘制方法
在绘制方法中:

  • 将画布旋转到计数器打开的度数(可能是 使用仿射变换(对象)
  • 画你的形象/正方形/形状/任何东西

祝你好运:)

Duplicate:研究使用仿射变换来实现这一点。检查它,您将看到它有一个静态方法,该方法返回一个专门用于旋转的变换。在进行变换之前,请确保将任何度数转换为弧度。您还需要使用来驱动动画。