well a vector is so simple to understand...
what happens in DarkBasic/OpenGL/DirectX - is you convert a 2/3/4 float into a Vector2/3/4 and then it gives you an integer return which is now effectively the vector address which tells the program where in the memory to search (they're still like 16bit/24bit/32bit values in the memory)
when you then use the 3D Math it'll then do the mathematical equasions you want on them at the same time ...
so say you do a Cross Product of 2 vectors
CROSS PRODUCT VECTOR3 ReturnVector, VectorA, VectorB
well what happens here is just like this effectively
type fVec3_t
x as float
y as float
z as float
endtype
Function CrossProduct( VecA as fVec3_t, VecB as fVec3_t)
`// private declaration
local VecReturn as fVec3_t
VecReturn.x = VecA.y*VecB.z - VecA.z*VecB.y
VecReturn.y = VecA.z*VecB.x - VecA.x*VecB.z
VecReturn.z = VecA.x*VecB.y - VecA.y*VecB.x
endfunction VecReturn
i know making a functio like that is current impossible but it is possible to get the same results with memory pointers (i'm just not good with them yet to confidently code with them yet)
as i said 3D Maths isn't really difficult just case of remembering the operators of them for the result you desire

CrossProduct is good for finding the Centre of 2 3DVector Positions - whereas DotProduct is good for finding the overall distance between all 3 points
Tsu'va Oni Ni Jyuuko Fiori Sei Tau!
One block follows the suit ... the whole suit of blocks is the path ... what have you found?