上面的1,2345678是8个点
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class LiFangTi extends Applet{
static int dian[][]=new int[8][2]; //绘制立方体的8个点
static int chang,kuan,gao; //立方体的长,宽,高
static JFrame jf;
public static void main(String args[]){
try{
chang=Integer.parseInt(args[0]);
kuan=Integer.parseInt(args[1]);
gao=Integer.parseInt(args[2]);
}catch(Exception e){}
LiFangTi jj=new LiFangTi();
jj.jianmo();
jf=new JFrame("绘制立方体");
jf.setLocation(300,300);
jf.setSize(400,400);
jf.getContentPane().add(jj);
jf.show();
}
public void jianmo(){
dian[0][0]=100;dian[0][1]=40;
dian[1][0]=dian[0][0]+chang;dian[1][1]=dian[0][1];
dian[2][0]=75;dian[2][1]=dian[0][1]+(int)Math.ceil(Math.sqrt(Math.pow(kuan,2)-Math.pow(25,2)));
dian[3][0]=dian[2][0]+chang;dian[3][1]=dian[2][1];
dian[4][0]=dian[2][0];dian[4][1]=dian[2][1]+gao;
dian[5][0]=dian[3][0];dian[5][1]=dian[4][1];
dian[6][0]=dian[0][0];dian[6][1]=dian[0][1]+gao;
dian[7][0]=dian[1][0];dian[7][1]=dian[6][1];
}
public void paint(Graphics g){
g.setColor(new Color(255,0,0));
g.drawLine(dian[0][0],dian[0][1],dian[1][0],dian[1][1]); //第1点到第2点
g.drawLine(dian[0][0],dian[0][1],dian[2][0],dian[2][1]); //第1点到第3点
g.drawLine(dian[0][0],dian[0][1],dian[6][0],dian[6][1]); //第1点到第7点
g.drawLine(dian[1][0],dian[1][1],dian[3][0],dian[3][1]); //第2点到第4点
g.drawLine(dian[1][0],dian[1][1],dian[7][0],dian[7][1]); //第2点到第8点
g.drawLine(dian[2][0],dian[2][1],dian[3][0],dian[3][1]); //第3点到第4点
g.drawLine(dian[2][0],dian[2][1],dian[4][0],dian[4][1]); //第3点到第5点
g.drawLine(dian[3][0],dian[3][1],dian[5][0],dian[5][1]); //第4点到第6点
g.drawLine(dian[4][0],dian[4][1],dian[5][0],dian[5][1]); //第5点到第6点
g.drawLine(dian[4][0],dian[4][1],dian[6][0],dian[6][1]); //第5点到第7点
g.drawLine(dian[5][0],dian[5][1],dian[7][0],dian[7][1]); //第6点到第8点
g.drawLine(dian[6][0],dian[6][1],dian[7][0],dian[6][1]); //第7点到第8点
}
}
编译后,运行时后面跟上长宽高,如 java LiFangTi 100 100 100就会画出一个立方体
这个图形的第三点的Y轴我用的勾股定理求的,最后它的返回值是double,我要把它转换为INT
这样精度不高了,怎么办?详细请看上面红色代码
[此贴子已经被作者于2006-6-2 22:38:21编辑过]