I need some help with this been working on it to no avail.
i have an object of known size. for example 4 units. if i divide by 2 i get 2 units aka my radius.
using screenx=getscreenxfrom3d(objposx#+radius,objposy#,objposz#) so plgging in the object current position plus its radius should give me the screen coord of its outside edge.
so then i want to frame the object with a circle
so i get the object centerpoint
x=getscreenxfrom3d(objposx#,objposy#,objposz#)
y=getscreenyfrom3d(objposx#,objposy#,objposz#)
now i want to draw a circles on x,y and scale the x and y radius to screenx.
but we need to take screenx and subtract x , "outside to center in screen coords" to determine how many pixels to draw
DrawEllipse(x,y,screenx-x ,MakeColor(128,128,255),MakeColor(128,128,255),0)
this code works for the most part but when the camera rotates on the z axis the size of the circle changes and is not consistent. any longer i dont know whats going on. aslo from one side it is large and viewing from the other side very small
for i= 100 to 200
x=GetScreenXFrom3D (star[i].posx,star[i].posy,star[i].posz)
y=GetScreenyFrom3D (star[i].posx,star[i].posy,star[i].posz)
`settextposition(i,x#,y#)
next
print("now in multiplayer")
starx#=star[120].posx
stary#=star[120].posy
starz#=star[120].posz
`screenx1=abs(getscreenxfrom3d(starx#-(star[120].size/2),stary#,starz#))
screenx2=getscreenxfrom3d(starx#+(star[120].size/2),stary#,starz#)
screenx=abs(getscreenxfrom3d(starx#,stary#,starz#))
screeny=abs(getscreenyfrom3d(starx#,stary#,starz#))
//DrawEllipse(screenx,screeny,(screenx2-screenx1)*,atan2(distance,getcameray(1)),MakeColor(128,128,255),MakeColor(128,128,255),1)
if GetObjectInScreen(120)=1
if screenx >screenx2
temp1=screenx
temp2=screenx2
endif
if screenx2 >screenx
temp2=screenx
temp1=screenx2
endif
DrawEllipse(screenx,screeny,(temp1-temp2)*2,(temp1-temp2) *2,MakeColor(128,128,255),MakeColor(128,128,255),0)
endif