к слову тут ооп и не пахнет.
Вольная вариация:
Type Point3D
Field x#,y#,z#
End Type
Function CreatePoint3D.Point3D(x#,y#,z#)
Local p.Point3D = New Point3D
p\x=x
p\y=y
p\z=z
Return p
End Function
Function get_triangle_dim(p1.Point3D, p2.Point3D, p3.Point3D)
Local v1.Point3D = New Point3D
Local v2.Point3D = New Point3D
Local vp.Point3D = New Point3D
v1\x=p2\x-p1\x;
v1\y=p2\y-p1\y;
v1\z=p2\z-p1\z;
v2\x=p3\x-p1\x;
v2\y=p3\y-p1\y;
v2\z=p3\z-p1\z;
vp\x=v1\y*v2\z-v1\z*v2\y;
vp\y=v1\z*v2\x-v1\x*v2\z;
vp\z=v1\x*v2\y-v1\y*v2\x;
return(sqr(vp\x*vp\x+vp\y*vp\y+vp\z*vp\z)/2);
End Function
Хотя заместо Point3D можно использовать пивоты.
SQR -
Square
Root
Blitz3D Docs This command will return the square root of a specified value. The value returned is a floating point number.
|