Am 06.10.2018 um 09:12 schrieb Kenneth:
> Honestly, I would say that I understand maybe half of those things, from a
> conceptual/3-D spatial viewpoint (my preferred or ONLY way of thinking about
> math concepts.) Others like dot-products I have a really hard time visualizing.
> And of the ones that I *do* understand, I'm just not sure how or when to use
> some of them. THAT's quite frustrating-- to know that they are useful, but to
> not know when to apply them.
Speaking of dot product...
> VAngle(V1, V2), VAngleD(V1, V2)-- Compute the angle between two vectors.
> VCos_Angle(V1, V2)-- Compute the cosine of the angle between two vectors.
> [hey, where's VSin_Angle(V1 V2) ??]
Because `VCos_Angle` is more fundamental (see below) - even more
fundamental than `VAngle`.
> VProject_Plane(V1, Axis)-- Project vector V1 onto the plane defined by Axis.
> [Uh, then what? Does it return a length? A vector?]
In essence, the "portion" of `V1` that is perpendicular to `Axis`.
Or what is left of `V1` if you take away the component in the direction
For example, if `Axis` would happen to be +z or -z, the result would be
equal to `<V1.x,V1.y,0>`; or if `Axis` would happen to be +x or -x, the
result wold be equal to `<0,V1.y,V1.z>`; and so on.
> ..... but their actual operations still appear a bit mysterious to me. Maybe it's
> the rather terse 'textbook' descriptions that give me a hard time, I dunno.
The core building block of these all happens to be the dot product.
For me, the key property of the dot product is as follows:
Suppose you have a /unit-length/ vector A specifying a direction, and an
arbitrary vector B:
| /:\ | /\
| Ba :__|90 / B
| : /
| /|\ /
| A | /
L| | /
| | /
| | /
| | /
| | /
(The orientation of A may be aribtrary; it's only axis-aligned here
because it makes ASCII art easier ;))
Then picture a right-angled triangle as drawn above, with B as the
longest leg (hypotenuse for the initiated), and one of the other legs
(one of the catheti) in the /direction/ of A.
Then the dot product of A and B gives you the length L of the A-aligned
leg - in other words, the distance between the common corner and the
(Remember, this only works if A is of unit length; otherwise, the dot
product grows or shrinks proportional to the length of A; not sure where
one would explout that - to me it is just a nuisance.)
This property can be put to good use in the following ways:
- Dividing L (the dot product) by the length of B gives the cosine of
the angle between the two vectors. (Or, if B is also of unit length, the
dot product /is/ the cosine.)
This is what `VCos_Angle` and `VAngle` use.[*]
- Multiplying A by L (the dot product) gives us the vector from the
common corner to the right-angled corner of the triangle (Ba in the
above diagramoid) - the component of B that is co-linear with A, if you
will. Or the projection of B onto A.
This is what `VProject_Plane` uses[*], by subtracting this vector Ba
from B, thus getting the component of B that is perpendicular to A.
Post a reply to this message