nomainwin
WindowWidth =500
WindowHeight =500
open "Is a random point inside a triangle?" for graphics_nsb as #wg
#wg "trapclose quit"
#wg "down ; fill darkblue ; color cyan ; size 1"
x1 =200: y1 =400: #wg "set "; x1; " "; y1
x2 =400: y2 =400: #wg "goto "; x2; " "; y2
x3 =300: y3 =100: #wg "goto "; x3; " "; y3
#wg " goto "; x1; " "; y1
#wg "flush"
N =0
call save N
do
x =int( 500 *rnd( 1)): y =int( 500 *rnd( 1))
a = ( ( y2 -y3) *( x -x3) +( x3 -x2) *( y -y3)) / ( ( y2 -y3) *(x1 -x3) +( x3 -x2) *( y1 -y3))
b = ( ( y3 -y1) *( x -x3) +( x1 -x3) *( y -y3)) / ( ( y2 -y3) *(x1 -x3) +( x3 -x2) *( y1 -y3))
c = 1 -a -b
' p lies in T if and only if 0 <= a <= 1 and 0 <= b <= 1 and 0 <= c <= 1
if ( ( 0 <=a) and ( a <=1))_
and ( ( 0 <=b) and ( b <=1))_
and ( ( 0 <=c) and ( c <=1))_
then
#wg "color green"
else
#wg "color red"
end if
#wg "set "; x ; " "; y
scan
N =N +1
if ( N mod 10000) =0 then call save N
loop until 0
sub quit h$
close #h$
end
end sub
sub save N
#wg "getbmp scr 1 1 500 500"
'bmpsave "scr", "triangle" +right$( "000000" +str$( N), 6) +".bmp"
#wg "cls"
#wg "drawbmp scr 1 1"
end sub