PTDISTSEG
d = PTDISTSEG (Bx, By, Cx, Cy, Ax, Ay)
Distance of point A from line segment B-C. Point A is given by the
coordinates (Ax
, Ay
), B by (Bx
,
By
) and C by (Cx
, Cy
).
Example 1
' Define line segment
100
Bx = 100
By = 200
Cx = 300
Cy =
' Define point
150
Ax = 50
Ay =
PTDISTSEG (Bx,By,Cx,Cy,Ax,Ay)
Distance = print "Distant between line and point is "; Distance ;" pixel"
Example 2: Interactive example to illustrate the geometry of PTDISTSEG
' Interactive example to illustrate the geometry of PTDISTSEG
200
Bx = 300
By = 300
Ax = 100
Ay =
pen on
while(!pen(12))
cls
print "Move Mouse. Press Left Mouse Button to exit"
pen(10)
Cx = pen(11)
Cy =
PTDISTSEG (Bx,By,Cx,Cy,Ax,Ay)
Distance = print "Distant between line and point is "; Distance ;" pixel"
Lx = Cx - Bx
Ly = Cy - By
if(Lx != 0 AND Ly != 0) then
' Calculate projection vector V using dot-product
Px = Ax - Bx
Py = Ay - By2 + Ly^2) * Lx
Vx = Bx + (Lx * Px + Ly * Py) / (Lx^2 + Ly^2) * Ly
Vy = By + (Lx * Px + Ly * Py) / (Lx^
' Test if V is on the line segment
t = (Vx-Bx)/Lxif(t < 0) then
Vx = Bx
Vy = Byelseif(t > 1) then
Vx = Cx
Vy = Cyendif
endif
' Draw
line Bx, By, Cx, Cy color 10 ' Line
line Ax, Ay, Vx, Vy color 2 ' Distant between line and point
circle Ax, Ay, 5 color 11 ' Cirlce at position of the point
showpage
delay(50)
wend
Math
ABS
ABSMAX
ABSMIN
ACOS
ACOSH
ACOT
ACOTH
ACSC
ACSCH
ASEC
ASECH
ASIN
ASINH
ATAN
ATAN2
ATANH
ATN
CEIL
COS
COSH
COT
COTH
CSC
CSCH
DEG
DERIV
DETERM
DIFFEQN
EXP
EXPRSEQ
FIX
FLOOR
FRAC
INT
INTERSECT
INVERSE
LINEQN
LOG
LOG10
M3APPLY
M3IDENT
M3ROTATE
M3SCALE
M3TRANS
MAX
MIN
POLYAREA
POLYCENT
POLYEXT
POW
PTDISTLN
PTDISTSEG
PTSIGN
RAD
RND
ROOT
ROUND
SEC
SECH
SEGCOS
SEGLEN
SEGSIN
SEQ
SGN
SIN
SINH
SQR
STATMEAN
STATMEANDEV
STATMEDIAN
STATSPREADP
STATSPREADS
STATSTD
SUM
SUMSQ
TAN
TANH
TRANSPOSE
If there is insufficient information on this page and you wish learn more about PTDISTSEG,
please send an email to smallbasic@gmail.com. You can help to improve information about
PTDISTSEG by submitting a pull request,
click View Source for details. Note, an offline language reference text file is also available - see the Download section.