EMNEW.e0000600010250400001470000000717411327551013011743 0ustar cspjbidcsother %donald viewport view2 point pcar, pcar1 rectangle rec int x,y x=425 y = 300 pcar = {x,y} pcar1 = {x+80,y+200} rec= rectangle(pcar, pcar1) ######################################### %scout window w1 = { box : [{100,0}, {600,500}] pict : "view2", type: DONALD, bgcolor:"orange" border:1 }; display testd; testd = ; screen = testd; ###################################### ################ extended %donald line offbackwheel, nearbackwheel, offfrontwheel, nearfrontwheel point frontobw, frontnbw, frontofw, frontnfw point rearobw, rearnbw, rearofw, rearnfw point centreobw, centrenbw, centreofw, centrenfw real wheelrad point midcar midcar = (pcar+pcar1) div 2 %eden _midcar = _midcar; %donald real length, width real cardir point midfront, midrear line caraxis midfront = midcar + {length div 2@cardir} midrear = midcar - {length div 2@cardir} caraxis = [midfront, midrear] length = 200.0 width = 80.0 cardir = pi div 2 pcar = midrear + {width@(cardir + pi div 2)} pcar1 = midfront - {width@(cardir + pi div 2)} width = 60.0 length = 190.0 cardir = 0.0 %donald line offbackwheel, nearbackwheel, offfrontwheel, nearfrontwheel point frontobw, frontnbw, frontofw, frontnfw point rearobw, rearnbw, rearofw, rearnfw point centreobw, centrenbw, centreofw, centrenfw real wheelrad centrenbw = ((midrear*3 + midcar*2) div 5) + {width@(cardir + pi div 2)} centreobw = ((midrear*3 + midcar*2) div 5) - {width@(cardir + pi div 2)} point turncentre turncentre = (centreobw + (centrenbw-centreobw) * 3.0) line turningradius turningradius = [centreobw, turncentre] %eden A_turningradius = "linestyle=dashed,color=red"; %donald real steerangle line halfofw centreofw = ((midfront*3 + midcar*2)div 5) - {width@(cardir + pi div 2)} frontofw = centreofw + {20@(cardir + steerangle)} halfofw = [centreofw, frontofw] steerangle = pi div 4 line trackline trackline = perpend(turncentre, halfofw) %donald real steerangle line halfofw centreofw = ((midfront*3 + midcar*2)div 5) - {width@(cardir + pi div 2)} frontofw = centreofw + {20@(cardir + steerangle)} halfofw = [centreofw, frontofw] steerangle = pi div 4 line trackline trackline = perpend(turncentre, halfofw) line halfnfw centrenfw = ((midfront*3 + midcar*2)div 5) + {width@(cardir + pi div 2)} frontnfw = centrenfw + {20@(cardir + steerangle)} halfnfw = [centrenfw, frontnfw] steerangle = pi div 10 %donald frontnfw = centrenfw + {20 @ (cardir + steerangle)} frontofw = centreofw + {20 @ (cardir + steerangle)} rearnfw = centrenfw - {20 @ (cardir + steerangle)} rearofw = centreofw - {20 @ (cardir + steerangle)} line nbw, obw nbw = [rearnfw, frontnfw] obw = [rearofw, frontofw] steerangle = pi div 4 real osteerangle, nsteerangle frontnfw = centrenfw + {20 @ (cardir + nsteerangle)} frontofw = centreofw + {20 @ (cardir + osteerangle)} rearnfw = centrenfw - {20 @ (cardir + nsteerangle)} rearofw = centreofw - {20 @ (cardir + osteerangle)} real oangle, nangle oangle = atan((centreobw.1 - centreofw.1) div (centreobw.2 - turncentre.2)) osteerangle = oangle real oangle, nangle, tansteerangle nangle = atan((centrenbw.1 - centrenfw.1) div (centrenbw.2 - turncentre.2)) line ntrackline ntrackline = [turncentre, centrenfw] turncentre = (centreobw + (centrenbw - centreobw) * 4.000000) nsteerangle = nangle tansteerangle = tan(steerangle) ###make lines for rectangle point qcar, qcar1 qcar = midrear - {width@(cardir + pi div 2)} qcar1 = midfront + {width@(cardir + pi div 2)} line oside oside = [pcar, pcar1] line oside oside = [pcar, qcar1] line nside nside = [pcar1, qcar] line back back = [pcar, qcar] line front front = [pcar1, qcar1] #delete the _rec delete rec turncentre = (centreobw + (centrenbw - centreobw) * 4.000000)