VS:PtOnArc

From Vectorworks Developer
Revision as of 14:36, 12 August 2013 by Root (talk | contribs) (1 revision)
Jump to navigation Jump to search

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

Description

Determines if a point is on an arc.

FUNCTION PtOnArc(
ptX, ptY, ptZ :REAL;
cenPtX, cenPtY, cenPtZ :REAL;
radius :REAL;
startAng :REAL;
sweepAng :REAL;
tolerance :REAL) :BOOLEAN;
def vs.PtOnArc(pt, cenPt, radius, startAng, sweepAng, tolerance):
    return BOOLEAN

Parameters

ptX, ptY, ptZ REAL
cenPtX, cenPtY, cenPtZ REAL
radius REAL
startAng REAL
sweepAng REAL
tolerance REAL

Example

PROCEDURE Example;
VAR
   pt, beg_pt, END_pt, cen_pt :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(-202);
   ArcInfo(FSActLayer, cen_pt, startAng, sweepAng, radius);
   CallTool(-221); 
   GetLocPt(FSActLayer, pt.x, pt.y);
   Message(PtOnArc(pt, cen_pt, radius, startAng, sweepAng, RealDialog('Fuzz:', '1')));
END;
RUN(Example);

Version

Availability: from All Versions

This is drop-in function.