VS:EqPt3D: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
m (1 revision)
(add comment and examples)
 
Line 40: Line 40:


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark></remark>
<remark>
(_c_, 2022.01.22) :
* Python: contrary to most Pascal-derived vectorial routines, it accepts also bidimensional tuples or even a 2/3-dimensional mix
* Python and Pascal: Don't pass 0 to the tolerance, or the routine will always return false.
</remark>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<sample></sample>
<sample>
 
==== Vectorscript ====
 
<code lang="pas">
PROCEDURE Example;
VAR
    v1, v2 : VECTOR;
BEGIN
    v1.x := 12; v1.y := 1; v1.z := 999;
    v2.x := 12; v2.y := 1; v2.z := 999.01;
 
    Message(Concat( EqPt3D(v1, v2, 0.1) )); { returns true }
    Message(Concat( EqPt3D(v1, v2, 0.01) )); { returns false }
    Message(Concat( EqPt3D(v1, v2, 0) )); { always returns false! Don't use tolerance zero }
END;
Run(Example);
</code>
 
==== Python ====
 
<code lang="py">
v1 = (12, 1, 999) # also accepts bidimensional tuples
v2 = (12, 1, 999)
vs.Message( str(vs.EqPt3D(v1, v2, 0.01)) ) # returns true
 
# example with faulty tolerance
v1 = (12, 1, 999)
v2 = (12, 1, 999)
vs.Message( str(vs.EqPt3D(v1, v2, 0)) ) # always returns false! Don't use tolerance zero
</code>
</sample>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<seeAlso></seeAlso>
<seeAlso>
VS Functions:
* [[VS:EqualPt]]
* [[VS:EqPt]]
* [[VS:EqPt2D]]
</seeAlso>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

Latest revision as of 04:51, 22 January 2022

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

Description

Returns TRUE if the 3D points are equal within the tolerance.

FUNCTION EqPt3D(
pt1 :VECTOR;
pt2 :VECTOR;
tolerance :REAL) : BOOLEAN;
def vs.EqPt3D(pt1, pt2, tolerance):
    return BOOLEAN

Parameters

pt1 VECTOR
pt2 VECTOR
tolerance REAL

Remarks

(_c_, 2022.01.22) :

  • Python: contrary to most Pascal-derived vectorial routines, it accepts also bidimensional tuples or even a 2/3-dimensional mix
  • Python and Pascal: Don't pass 0 to the tolerance, or the routine will always return false.

Example

Vectorscript

PROCEDURE Example;
VAR
    v1, v2 : VECTOR;
BEGIN
    v1.x := 12; v1.y := 1; v1.z := 999;
    v2.x := 12; v2.y := 1; v2.z := 999.01;

    Message(Concat( EqPt3D(v1, v2, 0.1) )); { returns true }
    Message(Concat( EqPt3D(v1, v2, 0.01) )); { returns false }
    Message(Concat( EqPt3D(v1, v2, 0) )); { always returns false! Don't use tolerance zero }
END;
Run(Example);

Python

v1 = (12, 1, 999) # also accepts bidimensional tuples
v2 = (12, 1, 999)
vs.Message( str(vs.EqPt3D(v1, v2, 0.01)) ) # returns true

# example with faulty tolerance
v1 = (12, 1, 999)
v2 = (12, 1, 999)
vs.Message( str(vs.EqPt3D(v1, v2, 0)) ) # always returns false! Don't use tolerance zero

Version

Availability: from Vectorworks 2014

See Also

VS Functions:

VS Functions:
  • [[VS:EqualPt]]
  • [[VS:EqPt]]
  • [[VS:EqPt2D]]