Point3D类
来源:互联网 发布:初识动画软件教学设计 编辑:程序博客网 时间:2024/04/20 11:59
Point3D类
package {
public class Point3D {
public var fl:Number = 250;
private var vpX:Number = 0;
private var vpY:Number = 0;
private var cX:Number = 0;
private var cY:Number = 0;
private var cZ:Number = 0;
public var x:Number = 0;
public var y:Number = 0;
public var z:Number = 0;
public function Point3D(x:Number=0, y:Number=0, z:Number=0) {
this.x = x;
this.y = y;
this.z = z;
}
public function setVanishingPoint(vpX:Number, vpY:Number):void {
this.vpX = vpX;
this.vpY = vpY;
}
public function setCenter(cX:Number,cY:Number,cZ:Number=0):void {
this.cX = cX;
this.cY = cY;
this.cZ = cZ;
}
public function get screenX():Number {
var scale:Number = fl / (fl + z + cZ);
return vpX + cX + x * scale;
}
public function get screenY():Number {
var scale:Number = fl / (fl + z + cZ);
return vpY + cY + y * scale;
}
public function rotateX(angleX:Number):void {
var cosX:Number = Math.cos(angleX);
var sinX:Number = Math.sin(angleX);
var y1:Number = y * cosX - z * sinX;
var z1:Number = z * cosX + y * sinX;
y = y1;
z = z1;
}
public function rotateY(angleY:Number):void {
var cosY:Number = Math.cos(angleY);
var sinY:Number = Math.sin(angleY);
var x1:Number = x * cosY - z * sinY;
var z1:Number = z * cosY + x * sinY;
x = x1;
z = z1;
}
public function rotateZ(angleZ:Number):void {
var cosZ:Number = Math.cos(angleZ);
var sinZ:Number = Math.sin(angleZ);
var x1:Number = x * cosZ - y * sinZ;
var y1:Number = y * cosZ + x * sinZ;
x = x1;
y = y1;
}
}
}
package {
public class Point3D {
public var fl:Number = 250;
private var vpX:Number = 0;
private var vpY:Number = 0;
private var cX:Number = 0;
private var cY:Number = 0;
private var cZ:Number = 0;
public var x:Number = 0;
public var y:Number = 0;
public var z:Number = 0;
public function Point3D(x:Number=0, y:Number=0, z:Number=0) {
this.x = x;
this.y = y;
this.z = z;
}
public function setVanishingPoint(vpX:Number, vpY:Number):void {
this.vpX = vpX;
this.vpY = vpY;
}
public function setCenter(cX:Number,cY:Number,cZ:Number=0):void {
this.cX = cX;
this.cY = cY;
this.cZ = cZ;
}
public function get screenX():Number {
var scale:Number = fl / (fl + z + cZ);
return vpX + cX + x * scale;
}
public function get screenY():Number {
var scale:Number = fl / (fl + z + cZ);
return vpY + cY + y * scale;
}
public function rotateX(angleX:Number):void {
var cosX:Number = Math.cos(angleX);
var sinX:Number = Math.sin(angleX);
var y1:Number = y * cosX - z * sinX;
var z1:Number = z * cosX + y * sinX;
y = y1;
z = z1;
}
public function rotateY(angleY:Number):void {
var cosY:Number = Math.cos(angleY);
var sinY:Number = Math.sin(angleY);
var x1:Number = x * cosY - z * sinY;
var z1:Number = z * cosY + x * sinY;
x = x1;
z = z1;
}
public function rotateZ(angleZ:Number):void {
var cosZ:Number = Math.cos(angleZ);
var sinZ:Number = Math.sin(angleZ);
var x1:Number = x * cosZ - y * sinZ;
var y1:Number = y * cosZ + x * sinZ;
x = x1;
y = y1;
}
}
}
- Point3D类
- 定义空间的三维点Point3d
- "invalid operands of types ‘float Point3d::*’ and ‘float Point3d::*’ to binary ‘operator<’"
- Mat, vector<point2f>,Point3d Iplimage等等常见类型转换
- 关于Geometry下Point3d实例返回值是否为空的判断方法
- WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- Cache 作用以及在在微处理机中的位置
- 借助WebService实现多线程上传文件
- 多线程断点续传研究之二
- jsp笔记
- 如何在C#去求矩阵的逆矩阵
- Point3D类
- eclipseme开发j2me,Errors during build等
- 如何把多个文件写入到一个文件中去并能分解
- 在CSDN上开通了博客
- jakarta项目介绍
- 浅谈八皇后问题
- 简易版WinZip
- 三角形类
- After paper reading.......