Hi.
It seems like there should be a built in method for multiplying a vector by a scalar, can’t seem to find any tho… Does anyone know of one?
could use this…
def vector_times_scalar(vector, scalar)
length = vector.length
length *= scalar
vector.length= length
vector
end
vec1 = Geom::Vector3d.new(0,0,1)
#=> Vector3d(0, 0, 1)
vec1.length
#=> 1.0
vec2 = vec1.transform(Math::PI)
#=> Vector3d(0, 0, 3.14159)
vec2.length
#=> 3.141592653589793
REF: Geom::Vector3d#transform()
Yes, I know the docs say the argument should be a transformation.
You could also use …
t = Geom::Transformation.scaling(Math::PI)
vec2 = vec1.transform(t)
… and be sure that the code would work in future versions if the scalar value stops being acceptable at some time, for sone reason.
REF: Geom::Transformation::scaling()
3 Likes