#include "triangulation.inc" #macro _rascension() rascension(Eye) #end #macro rascension(eye) #local rad = abs(atan2(eye.z,eye.x)); #if (eye.z < 0.0) #local rad = pi*2 - rad; #end #local rad = rad / (pi / 12); #local rad = (rad * 360 / 24); rad #end #macro _declination() declination(Eye) #end #macro declination(eye) #local _v = ; #local dec = degrees(radang2(eye,_v)); #if (eye.y < 0.0) #local dec = dec * -1; #end dec #end #macro declinationright() #local eye = ; #local _v = ; #local dec = degrees(radang2(eye,_v)); #if (cameramatrix[1] < 0.0) #local dec = dec * -1; #end dec #end /////////////////////////////////// Info Readout \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #macro InfoDisplay() #local rad = abs(atan2(cameramatrix[10],cameramatrix[8])); #if (cameramatrix[10] < 0.0) #local rad = pi*2 - rad; #end #local rad = rad / (pi / 12); #local rh = concat(str(floor(rad),0,0),"h ", str(round(mod(rad,1.0)*60,2)0,2) ,"m"); #local ra = _rascension(); #local dec = _declination(); #local dm = concat(str(floor(dec-mod(dec,1.0)),0,0),"d ", str(round(abs(mod(dec,1.0))*60,2),0,2),"m"); #local a = -asa_sin(pi/2,98.726,radians(camang/2)); #declare fontscal = _clamp(0.76,0.5,1.5) * (a / -56.999482676015035); // MIDDLE LEFT @60fov text_draw(-57,0,(rad * 360 / 24),dec, //#local fh = -2.6; // FontHeight #local fh = a / 21.922878; #local lh = a / -38; //text_draw(a,fh*2+(lh-fontscal)*Y,ra,dec, txt) //text_draw(a,fh*3+(lh-fontscal)*4.5,ra,dec,str(rh,0,2) ) //text_draw(a,fh*4+(lh-fontscal)*6,ra,dec,str(dm,0,2)) text_draw(a,fh*5+(lh-fontscal)*7.5,ra,dec,concat("RA: ",str(round(ra,2),0,2))) text_draw(a,fh*6+(lh-fontscal)*9,ra,dec,concat("Dec: ", str(round(dec,2),0,2))) #end #macro InfoDisplay2(txt,Y) #if (Camera = 1) #local ra = _rascension(); #local dec = _declination(); #local ra = rascension(Eye); #local dec = declination(Eye); #end #if (Camera = 2) #local ra = rascension(Eye2); #local dec = declination(Eye2); #end #local scal2 = 1366 / image_width; #local scal2 = scal2 * .5; // echo("first call ") echof(scal2) echo(" ") echoi(image_width) cr() #local scal2 = _clamp(scal2,1.0,2); #local a = -asa_sin(pi/2,98.726,radians(camang/2)); #declare fontscal = _clamp(0.76,0.5,1.5) * (a / -56.999482676015035); #local fh = a / 21.922878; #local lh = a / -35; text_draw(a,fh*2*scal2+(lh-fontscal)*Y*scal2,ra,dec, txt) #end #macro text_draw(X,Y,r,d,st) #local sc = .0015; #local sc = sc + .02 * (vlength(campos)/150000); drawtext2(1,<0.015*fontscal,0.015*fontscal,sc*fontscal>, X, Y,0.02, st,1,r,d) #end #macro drawtext2(col,scal,X,Y,Z,Text,D,ra,dec) #if (Camera = 1) #local _x = Right*0.01; #local _y = Up*0.01; #local _z = Eye*0.01; #end #if (Camera = 2) #local _x = Right2*0.01; #local _y = Up2*0.01; #local _z = Eye2*0.01; #end #local scale2 = 1; #local scale2 = 1366.0 / (image_width * 1.00001); //echo("Scale ") echof(scale2) echo(" ") echoi(image_width) cr() #if (image_width = 840) #local scale2 = 1.4; #end #if (image_width = 638) #local scale2 = 1.7; #end #local scale2 = _clamp(scale2,1,2); object { text { ttf "Arial.ttf" Text 1 x*.08 texture { pigment { rgb col } finish { ambient 1 diffuse 0 } } } #if (Camera = 1) rotate <0,0,declinationright()> #end // #if (Camera = 2) rotate <0,0,declinationright()> #end scale scal * scale2 rotate <0,camang/-2,0> translate <0,0,D> rotate <-dec,0,0> rotate <0,-ra+90,0> #if (Camera = 1) translate campos+(_x*X)+(_y*Y)+(_z*Z) #end #if (Camera = 2) translate campos2+(_x*X)+(_y*Y)+(_z*Z) #end no_shadow } #end #version 3.63; #include "megatime.inc" #macro GST(jd) #local tt = (jd - 2451545.0) / 36525; #local gt=280.46061837+360.98564736629*(jd-2451545.0)+(0.000387933*tt*tt)-(tt*tt*tt/38710000.0); #local h = mod((gt / 15),24.0); #if (h < 0) h = h + 24.0; #end h #end #macro jsidereal(j,l) #local h = GST(j) + (l/15); #local h = mod(h, 24.0); #if (h < 0) #local h = h + 24.0; #end h //also GMST = (j - 2451545.0) * 24.06570982441908 + 18.697374558; #end #macro azalt() #declare aza = array[2] { 0,0 } // TZset(10) called by including megatime.inc // set JulianDate // Hawaii #local LAT = 19; #local longitude = -156; #local sidereal = jsidereal(JulianDate,longitude); // initializcamera() for ra dec // initialize globals Up,Eye,campos,roll setmatrixt(Up,Eye) #local ra = _rascension(); #local DEC = _declination(); #local HA = radians(sidereal*15) - ra; #local LAT = radians(LAT); #local ALT = sin(DEC)*sin(LAT)+cos(DEC)*cos(LAT)*cos(HA); #local ALT = asin(ALT); #declare aza[1] = ALT; #local AZ = sin(DEC) - sin(ALT)*sin(LAT); #local AZ = AZ / (cos(ALT)*cos(LAT)); #local AZ = acos(AZ); #if (sin(HA) > 0.0) #local AZ = PI2 - AZ; #end #declare aza[0] = AZ; #end #macro setmatrixt(Up,eye) #local e = vnormalize(eye); #local r = vnormalize(vcross(Up,e)); #local U = vnormalize(vcross(e,r)); #declare cameramatrix = array[16] { r.x,r.y,r.z,0,U.x,U.y,U.z,0,e.x,e.y,e.z,0,0,0,0,1 } #end #macro initializcamera(viewpnt,campnt) #declare campos = campnt; #local e = vnormalize(viewpnt - campnt); /// Eye vector #local U = y; #local r = vnormalize(vcross(U,e)); #local U = vnormalize(vcross(e,r)); setmatrixt(U,e) #declare Up = U; #declare Eye = e; #declare roll = 0; #end