VS:PtPerpCircle: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
m (1 revision)
 
m (1 revision)
(No difference)

Revision as of 14:36, 12 August 2013

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Returns a point on the circle which is closest to the input point.

FUNCTION PtPerpCircle(
ptX, ptY, ptZ :REAL;
cenPtX, cenPtY, cenPtZ :REAL;
radius :REAL) X, Y, Z :REAL;
def vs.PtPerpCircle(pt, cenPt, radius):
    return VECTOR

Parameters

ptX, ptY, ptZ REAL
cenPtX, cenPtY, cenPtZ REAL
radius REAL

Example

PROCEDURE Example;
VAR
   cen_pt, pt, r              :VECTOR;
   startAng, sweepAng, Radius :REAL;

   PROCEDURE ArcInfo(h :HANDLE; VAR cen_pt :vector; VAR startAng, sweepAng, Radius :REAL);
   BEGIN
      Hcenter(h, cen_pt.x, cen_pt.y);
      GetArc (h, startAng, sweepAng);
      IF GetType(h) = 6 THEN Radius := Hperim(h) / Deg2Rad(sweepAng) ELSE
      IF GetType(h) = 89 THEN Radius := 5729.28 / ((100 * Hangle(h)) / Hlength(h));
   END;

BEGIN
   CallTool(-205);
   ArcInfo(FSActLayer, cen_pt, startAng, sweepAng, Radius);
      CallTool(-221);
   GetLocPt(FSActLayer, pt.x, pt.y);
   r := PtPerpCircle(pt, cen_pt, radius);
   Locus(r.x, r.y);
END;
RUN(Example);

Version

Availability: from All Versions

This is drop-in function.