Thank you for taking the time to provide your input. Reagrds, Carl
I am trying to replicate an old program I wrote with Real Basic before everything changed with graphics. Here is the relevant code:
'This project allows multiple lasers interating with multiple optics (mirros, lenses)
var slope As single
var i, n As integer
dim x As single
var prismData As string
var test As single
var d As DesktopOval
dim xx, yy As integer
dim xStart, yStart As integer
dim AofPerpendicular As single
var tempA As single
dim dY, dX As single
TextArea1.text=“”
dataCounter=0
getWindowPic 'screenshot the canvas into property rgbs
n=numberOfDots
for i=numberOfLasersLast to numberOfLasers '1 based numberOfLaser=1 is laser(1)
numberOfLasersLast=numberOfLasersLast+1
xStart=laser(i).left+laser(i).Width/2
yStart=laser(i).top + laser(i).Height/2
x=xStart
d=New laserDot '1st dot for the next laser
laserDot(n).angle=laser(i).angle
slope=Tan(laser(i).angle)
dX=cos(laserDot(n).angle)
do
laserDot(n).fillcolor=Laser(i).colour
laserDot(n).Width=2
laserDot(n).Height=1
laserDot(n).Visible=true
laserDot(n).left=x
'straight line formula
dY=slope*(x-xStart) 'y=mx
laserDot(n).top=yStart+ dY 'y=Y0 + dY
xx=laserDot(n).left
yy=laserDot(n).top
if rgbsPict.Pixel(xx,yy)=color.Teal then continue for i 'has the laser line exceeded a boundary or hit an obstruction
'other code is here, but not relavent
d=New laserDot
n=n+1
laserDot(n).angle=laserDot(n-1).angle
dX=cos(laserDot(n).angle)
x=x+2*dX
if x>10000 then 'temp
quit
end if
loop
next i
numberOfDots=n
bLasersOff.Caption=“Turn Lasers Off”
bLasersOff.visible=true
exception
textArea1.text="exception–makeLaserLines "+chr(13)+TextArea1.text