From 07b2fc28d8c4e73438b4f5d55f7fd2344d2f1659 Mon Sep 17 00:00:00 2001 From: Stephan Rehfeld Date: Wed, 29 Apr 2026 17:53:40 +0200 Subject: [PATCH] Implemting multiplication of vector3 with scalar --- src/main.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index e1a0a9b..17846c0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::ops::{Add, Sub}; +use std::ops::{Add, Mul, Sub}; #[derive(Copy, Clone)] struct Vector3 { @@ -29,13 +29,23 @@ impl Sub for Vector3 { } } +impl Mul for Vector3 { + type Output = Vector3; + + fn mul(self, rhs: f64) -> Self::Output { + Vector3::new(self.x * rhs, self.y * rhs, self.z * rhs) + } +} + fn main() { let vec1 = Vector3::new(1.0, 0.0, 0.0); let vec2 = Vector3::new(0.0, 1.0, 0.0); let vec3 = vec1 + vec2; let vec4 = vec1 - vec2; + let vec5 = vec4 * 3.14159; println!("x = {}, y = {}, z = {}", vec3.x, vec3.y, vec3.z); println!("x = {}, y = {}, z = {}", vec4.x, vec4.y, vec4.z); + println!("x = {}, y = {}, z = {}", vec5.x, vec5.y, vec5.z); }