private Quaternion(vec3 point, vec3 axis, double angle) { scalar = Cos(angle / 2); vec = axis * Sin(angle / 2); this.angle = angle; }
private Quaternion(double scalar, vec3 vec) { this.scalar = scalar; this.vec = vec; }
// skaláris szorzat public static double Dot(vec3 a, vec3 b) { return(a.x * b.x + a.y * b.y + a.z * b.z); }
public vec3(vec3 v) : this(v.x, v.y, v.z) { }
// normalizálás public static vec3 Normalize(vec3 v) { return(v / Sqrt(Dot(v, v))); }
// vektorszorzat public static vec3 Cross(vec3 a, vec3 b) { return(new vec3(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x)); }