[JAVA100例]031、三维立方体

2016-02-19 15:35 1 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的[JAVA100例]031、三维立方体,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

import java.awt.*;
 import javax.swing.*;
 public class Gr3d4a extends Gr3d1m {
 
/**
 *br方法说明:主方法
 *br输入参数:
 *br返回类型:
 */
 public static void main(String[] args){
   Gr3d4a G3 = new Gr3d4a();
 }
/**
 *br方法说明:构造器
 *br输入参数:
 *br返回类型:
 */
 public Gr3d4a() {
  setTitle("3D cube box");
   setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   addMouseListener(this);
   addMouseMotionListener(this);
   setBackground(new Color(128,128,255));
   setSize(350,350);
   show();
 }
/**
 *br方法说明:绘制正方体盒子,过载Gr3d1m中的方法
 *br输入参数:
 *br返回类型:
 */
 public void drawPG(Graphics g,double []x,double []y,
           double []z,int xp,int yp,Color co) {
   double x1,y1,z0;
   int len=x.length;
   double [] xw=new double[len];
   double [] yw=new double[len];
   int  [] xx=new int  [len];
   int  [] yy=new int  [len];
   final double RAD=Math.PI/180.0;
   double a=angX*RAD;
   double b=angY*RAD;
   double sinA=Math.sin(a),sinB=Math.sin(b);
   double cosA=Math.cos(a),cosB=Math.cos(b);
   for (int i=0; ilen; i++) {
    x1= x[i]*cosB+z[i]*sinB;
    z0=-x[i]*sinB+z[i]*cosB;
    y1= y[i]*cosA- z0*sinA;
    xx[i]=xp+(int)Math.rint(x1);
    yy[i]=yp-(int)Math.rint(y1);
    xw[i]=x1; yw[i]=y1;
   }
   if (Hvec(xw,yw) 0) {
    g.setColor(co);
    g.fillPolygon(xx,yy,len);//填充的多边形
   }
 }
/**
 *br方法说明:消影处理,如果平面被遮蔽将不被绘制
 *br输入参数:
 *br返回类型:
 */
 double Hvec(double []x,double []y) {
  return(x[0]*(y[1]-y[2])+x[1]*(y[2]-y[0])+x[2]*(y[0]-y[1]));
 }
 }

来源:https://www.tulaoshi.com/n/20160219/1609962.html

延伸阅读
/**  * pTitle: 目录操作/p  * pDescription: 演示列目录下的文件,和移动一个目录/p  * pCopyright: Copyright (c) 2003/p  * pFilename: Dir.java/p  * @version 1.0  */ import java.io.*; public class Dir{  /**  *br方法说明:实现目录列表  *br输入参数:  *br返回类型:  ...
import java.awt.*; import java.applet.*; /**  * pTitle: 带阴影的文字/p  * pDescription: 使用Applet和Graphics,实现一个文字的移动广告。/p  * pCopyright: Copyright (c) 2003/p  * pFilename: ShadowText.java/p  * @version 1.0  */ public class ShadowText extends Applet implements Runnable ...
/**  * pTitle: 线程同步/p  * pDescription: 通过使用同步锁实现对共享数据的操作/p  * pCopyright: Copyright (c) 2003/p  * pFilename: SyThreadDemo.java/p  * @version 1.0  */ /**  *br类说明:主程序  *br功能描述:构造两个线程,并启动它们  */ public class SyThreadDemo {  ...
/**  * pTitle: 创建多线程/p  * pDescription: 使用构造器,创建多线程。/p  * pCopyright: Copyright (c) 2003/p  * pFilename: multiThread.java/p  * @version 1.0  */ public class multiThread { /**  *br方法说明:主方法  *br输入参数:  *br返回类型:  */  public static vo...
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; /**  * pTitle: 滑动杆演示/p  * pDescription: 使用滑动杆控制定时器,来控制图片的播放速度/p  * pCopyright: Copyright (c) 2003/p  * pFilename: SliderDemo.java/p  * @version 1.0  */ public class Slid...

经验教程

643

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部