📄 vector.java
字号:
import java.awt.*;
public class vector{
public double a, b , c; //3D components, private Point P = new Point(0, 0); //position on 2D screen;
public vector(double i, double j, double k){
this.a = i;
this.b = j;
this.c = k;
P.x = 320 + (int)i + (int)(j/2);
P.y = 240 - (int)k - (int)(j/2);
}
public vector(double i, double j){
this.a = i;
this.b = j;
}
public void draw(Graphics g){
g.drawRect((int)P.x, (int)P.y, 1, 1);
}
public int getX(){
return P.x;
}
public int getY(){
return P.y;
}
public double get_x(){
return a;
}
public double get_y(){
return b;
}
public double get_z(){
return c;
}
public double length(){
return Math.sqrt(a*a + b*b + c*c);
}
public vector subtract(vector v){
return new vector(a - v.a, b - v.b, c - v.c);
}
public vector add(vector v){
return new vector(a + v.a, b + v.b, c + v.c);
}
public vector scale(double s){
return new vector(a*s, b*s, c*s);
}
public vector unit(){
return new vector(a/(Math.sqrt(a*a + b*b + c*c)), b/(Math.sqrt(a*a + b*b + c*c)), c/(Math.sqrt(a*a + b*b + c*c)));
}
public double dot(vector v){
return a*v.get_x() + b*v.get_y() + c*v.get_z();
}
public vector cross(vector v){
return new vector(b*v.c - c*v.b, c*v.a - a*v.c, a*v.b - b*v.a);
}
public vector rotate2D(double angle){
return new vector(Math.cos(angle)*a - Math.sin(angle)*b, Math.sin(angle)*a + Math.cos(angle)*b);
}
public String toString(){
return "(" + a + ", " + b + ", " + c + ")";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -