VS:RelativeCoords: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
m (1 revision)
 
No edit summary
Line 5: Line 5:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<desc>
<desc>
Translates a point into a coordinate system defined by 2 other points.
Translates a point into a coordinate system defined by 2 other points.</desc>
</desc>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<def>
<def>
<funcDef lang="vs">
<funcDef lang="vs">
FUNCTION RelativeCoords(ptX, ptY, ptZ :REAL; begPtX, begPtY, begPtZ :REAL; endPtX, endPtY, endPtZ :REAL) X, Y, Z :REAL;
FUNCTION RelativeCoords(pt:VECTOR; begPt:VECTOR; endPt:VECTOR) : VECTOR;
</funcDef>
</funcDef>
<funcDef lang="py">
<funcDef lang="py">
Line 23: Line 22:
<lineList ident=1>
<lineList ident=1>
<line>
<line>
ptX, ptY, ptZ
pt
REAL
VECTOR


</line>
</line>
<line>
<line>
begPtX, begPtY, begPtZ
begPt
REAL
VECTOR


</line>
</line>
<line>
<line>
endPtX, endPtY, endPtZ
endPt
REAL
VECTOR


</line>
</line>
</lineList>
</lineList>
</params>
</params>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<return>
<remark></remark>
</return>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark>
<sample></sample>
([[User:Orso.b.schmid|Orso]], 2011 Jan. 21): As shown in the example below, it also accepts three vectors. For the math-ignorant (such as me): you can visually understand the effect of this routine as follows:
* draw a line between "begPt-endPt". This line has perhaps an angle.
* rotate the line using as fulcrum "begPt" so that it lies horizontally on the x-axes. Now the angle is zero
* shift the line on the user origin so that "begPt" lies on it
You can see an image of this representation on the [http://www.vectorlab.info/index.php?title=Image:MathRelativeCoords.png Math page of Vectorlab]
</remark>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<sample>
<seeAlso></seeAlso>
<code lang="pas">
PROCEDURE Example;
VAR
  pt, beg_pt, END_pt, v :VECTOR;
BEGIN
  Message('Set begin point...');
  CallTool(-221); { call the "Locus" tool }
  GetLocPt(FSActLayer, beg_pt.x, beg_pt.y); { fetch locus coordinates }
  Message('Set end point...');
  CallTool(-221);
  GetLocPt(FSActLayer, END_pt.x, END_pt.y);
  Message('Set point...');
  CallTool(-221);
  GetLocPt(FSActLayer, pt.x, pt.y);
  v := RelativeCoords(pt, beg_pt, END_pt);
  Message('result vector=', v);
END;
RUN(Example);</code>
 
</sample>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<version>
<version>
Availability: from All Versions
Availability: from Vectorworks 2014


This is drop-in function.
</version>
</version>
-----------------------------------------------------------------------------------------------------------
<seeAlso>
</seeAlso>


</vwDoc>
</vwDoc>

Revision as of 17:35, 18 September 2013

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

Description

Translates a point into a coordinate system defined by 2 other points.

FUNCTION RelativeCoords(
pt :VECTOR;
begPt :VECTOR;
endPt :VECTOR) : VECTOR;
def vs.RelativeCoords(pt, begPt, endPt):
    return VECTOR

Parameters

pt VECTOR
begPt VECTOR
endPt VECTOR

Version

Availability: from Vectorworks 2014