Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function dotProduct(v1 as vector2, v2 as vector2) as double
- dim as coord2_d a, b 'To hold our converted vectors
- dim as double dot
- 'Convert everything to double depending on base vector type
- select case v1.dataType
- case vector_Int:
- a.x = v1.i.x
- a.y = v1.i.y
- case vector_Dbl:
- a.x = v1.d.x
- a.y = v1.d.y
- case vector_Rad:
- a.x = cos(v1.r.o)*v1.r.r
- a.y = sin(v1.r.o)*v1.r.r
- case else 'assume double
- a.x = v1.d.x
- a.y = v1.d.y
- end select
- 'same for 2nd input vector
- select case v2.dataType
- case vector_Int:
- b.x = v2.i.x
- b.y = v2.i.y
- case vector_Dbl:
- b.x = v2.d.x
- b.y = v2.d.y
- case vector_Rad:
- b.x = cos(v2.r.o)*v2.r.r
- b.y = sin(v2.r.o)*v2.r.r
- case else 'assume double
- b.x = v2.d.x
- b.y = v2.d.y
- end select
- dot = a.x*b.x + a.y*b.y
- return dot
- end function
- function dotProduct(v1 as vector3, v2 as vector3) as double
- dim as coord3_d a, b 'To hold our converted vectors
- dim as double dot
- 'Convert everything to double depending on base vector type
- select case v1.dataType
- case vector_Int:
- a.x = v1.i.x
- a.y = v1.i.y
- a.z = v1.i.z
- case vector_Dbl:
- a.x = v1.d.x
- a.y = v1.d.y
- a.z = v1.d.z
- case vector_Sph:
- a.x = cos(v1.s.o)*v1.s.r*sin(v1.s.p)
- a.y = sin(v1.s.o)*v1.s.r*sin(v1.s.p)
- a.z = cos(v1.s.p)*v1.s.r
- case vector_Cyl:
- a.x = cos(v1.c.o)*v1.c.r
- a.y = sin(v1.c.o)*v1.c.r
- a.z = v1.c.z
- case else 'assume double
- a.x = v1.d.x
- a.y = v1.d.y
- a.z = v1.d.z
- end select
- select case v2.dataType
- case vector_Int:
- b.x = v2.i.x
- b.y = v2.i.y
- b.z = v2.i.z
- case vector_Dbl:
- b.x = v2.d.x
- b.y = v2.d.y
- b.z = v2.d.z
- case vector_Sph:
- b.x = cos(v2.s.o)*v2.s.r*sin(v2.s.p)
- b.y = sin(v2.s.o)*v2.s.r*sin(v2.s.p)
- b.z = cos(v2.s.p)*v2.s.r
- case vector_Cyl:
- b.x = cos(v2.c.o)*v2.c.r
- b.y = sin(v2.c.o)*v2.c.r
- b.z = v2.c.z
- case else 'assume double
- b.x = v2.d.x
- b.y = v2.d.y
- b.z = v2.d.z
- end select
- 'same for 2nd input vector
- dot = a.x*b.x + a.y*b.y + a.z*b.z
- return dot
- end function
Add Comment
Please, Sign In to add comment