Vector Calculator
Calculate 2D and 3D vector addition, subtraction, dot product, cross product, and magnitude.
x
y
z
x
y
z
Domande Frequenti
Implementazione del Codice
import math
# 3D Vector operations
class Vector3:
def __init__(self, x, y, z=0):
self.x, self.y, self.z = x, y, z
def __add__(self, v): return Vector3(self.x+v.x, self.y+v.y, self.z+v.z)
def __sub__(self, v): return Vector3(self.x-v.x, self.y-v.y, self.z-v.z)
def __mul__(self, s): return Vector3(self.x*s, self.y*s, self.z*s)
def magnitude(self):
return math.sqrt(self.x**2 + self.y**2 + self.z**2)
def normalize(self):
m = self.magnitude()
return Vector3(self.x/m, self.y/m, self.z/m)
def dot(self, v):
return self.x*v.x + self.y*v.y + self.z*v.z
def cross(self, v):
return Vector3(
self.y*v.z - self.z*v.y,
self.z*v.x - self.x*v.z,
self.x*v.y - self.y*v.x
)
def angle_with(self, v):
cos_a = self.dot(v) / (self.magnitude() * v.magnitude())
return math.degrees(math.acos(max(-1, min(1, cos_a))))
def __repr__(self): return f"({self.x}, {self.y}, {self.z})"
# Examples
a = Vector3(1, 2, 3)
b = Vector3(4, 5, 6)
print(f"A + B = {a + b}") # (5, 7, 9)
print(f"|A| = {a.magnitude():.4f}") # 3.7417
print(f"A · B = {a.dot(b)}") # 32
print(f"A × B = {a.cross(b)}") # (-3, 6, -3)
print(f"Angle = {a.angle_with(b):.2f}°") # 12.93°
print(f"norm(A) = {a.normalize()}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.