?? draw.java
字號:
////////////////////////////////////////////////////////////////////////////////
//
// Draw.java
//
// 開發者:劉嘉祥
//
////////////////////////////////////////////////////////////////////////////////
//
// 功能:
// 實現在程序中需要調用的各種繪制方法。
//
////////////////////////////////////////////////////////////////////////////////
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
public class Draw
{
//定義畫粗直線的方法drawLine
static void drawLine(Graphics2D g2d,int x1,int y1,int x2,int y2)
{
double angle;
double width = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
if((x1==x2)&&(y2>=y1))
angle = Math.PI/2;
else if((x1==x2)&&(y2<y1))
angle = -Math.PI/2;
else if(x2-x1>0)
angle = Math.atan((y2-y1)/(double)(x2-x1));
else
angle = Math.atan((y2-y1)/(double)(x2-x1)) + Math.PI;
g2d.translate(x1,y1);
g2d.rotate(angle);
g2d.fill(new Rectangle(0,-3,(int)width,6));
g2d.fill(new Ellipse2D.Double(-3,-3,6,6));
g2d.fill(new Ellipse2D.Double(width-3,-3,6,6));
g2d.rotate(-angle);
g2d.translate(-x1,-y1);
}//方法drawLine結束
//定義畫粗邊圓/橢圓的方法drawCircle
static void drawCircle(Graphics2D g2d,int x,int y,int a,int b)
{
Color c = g2d.getColor();
g2d.fill(new Ellipse2D.Double(x-a-3,y-b-3,2*(a+3),2*(b+3)));
g2d.setColor(Color.white);
g2d.fill(new Ellipse2D.Double(x-a+3,y-b+3,2*(a-3),2*(b-3)));
g2d.setColor(c);
}//方法drawCircle結束
//定義填充圓/橢圓的方法fillCircle
static void fillCircle(Graphics2D g2d,int x,int y,int a,int b)
{
g2d.fill(new Ellipse2D.Double(x-a,y-b,2*a,2*b));
}//方法fillCircle結束
//定義過渡效果的刷屏方法clearScreen
static void cleanScreen(Graphics2D g2d,int a_frame)
{
Color c0 = g2d.getColor();
Color c = new Color(255,255,255,a_frame*255/40);
if(a_frame==1)
Animation.fadeInSound.play();
g2d.setColor(c);
g2d.fill(new Rectangle(0,0,600,400));
g2d.setColor(c0);
}//方法clearScreen結束
}//類Draw結束
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -