0 Members and 1 Guest are viewing this topic.
oapiGetGlobalPos (MyData.MyHandle,&GSpacecraftPos); oapiGetGlobalPos(Solar[Numb].TrackedObjHandle, >argetPos); Global2Local(GSpacecraftPos, SpacecraftPos); Global2Local(GTargetPos, TargetPos); pos = TargetPos - SpacecraftPos; Solar[Numb].Distance = sqrt(pow(pos.x, 2) + pow(pos.y, 2) + pow(pos.z, 2)); double pitch = asin(pos.y/Solar[Numb].Distance); double yaw=acos(pos.z/(Solar[Numb].Distance * sin(acos(pos.y/Solar[Numb].Distance)))); if(pos.x < 0) Solar[Numb].requestedYaw=1-(yaw*0.159154943); else Solar[Numb].requestedYaw=yaw*0.159154943; Solar[Numb].requestedPitch=pitch*0.159154943;//+0.06; // set antenna speed if(Solar[Numb].Speed==0) MoveSpeed=oapiGetSimStep() *0.015; else MoveSpeed=oapiGetSimStep() *0.033; if(Solar[Numb].requestedPitch<0.01) { Solar[Numb].requestedPitch=0.0; Solar[Numb].requestedYaw=0; } // avoid "north" problem (0-360) if(Solar[Numb].requestedYaw-Solar[Numb].ActualYaw>0.5) { Solar[Numb].requestedYaw-=1.0; } else if(Solar[Numb].ActualYaw-Solar[Numb].requestedYaw>0.5) { Solar[Numb].requestedYaw+=1.0; } if(Solar[Numb].ActualYaw<Solar[Numb].requestedYaw) { //Solar[Numb].ActualYaw += MoveSpeed; Solar[Numb].ActualYaw =min (Solar[Numb].requestedYaw,Solar[Numb].ActualYaw+MoveSpeed); if(Solar[Numb].ActualYaw>1.0) Solar[Numb].ActualYaw-=1.0; } else { //Solar[Numb].ActualYaw -= MoveSpeed; Solar[Numb].ActualYaw =max (Solar[Numb].requestedYaw,Solar[Numb].ActualYaw-MoveSpeed); if(Solar[Numb].ActualYaw<0.0) Solar[Numb].ActualYaw+=1.0; } if(Solar[Numb].ActualPitch<Solar[Numb].requestedPitch) { //Solar[Numb].ActualPitch += MoveSpeed; Solar[Numb].ActualPitch =min (Solar[Numb].requestedPitch,Solar[Numb].ActualPitch+MoveSpeed); } else { //Solar[Numb].ActualPitch -= MoveSpeed; Solar[Numb].ActualPitch =max (Solar[Numb].requestedPitch,Solar[Numb].ActualPitch-MoveSpeed); } if(Solar[Numb].ActualPitch<0.0) Solar[Numb].ActualPitch=0.0; SetAnimation (anim_SolarBase[Numb], Solar[Numb].ActualYaw); SetAnimation (anim_SolarTop[Numb],Solar[Numb].ActualPitch); //SetAnimation (anim_SolarBase[0], Solar[Numb].ActualYaw); //SetAnimation (anim_SolarTop[0],Solar[Numb].ActualPitch); //SetAnimation (anim_SolarBase[2], Solar[Numb].ActualYaw); //SetAnimation (anim_SolarTop[2],Solar[Numb].ActualPitch); // get the force of the signal Solar[Numb].SignalForce=10-((fabs(Solar[Numb].ActualYaw-Solar[Numb].requestedYaw)+fabs(Solar[Numb].ActualPitch-Solar[Numb].requestedPitch))*(600+(Solar[Numb].Distance/10000000.0))); Solar[Numb].SignalForce-=Solar[Numb].Distance/100000000000.0;
DanSteph a écrit:C'EST QUOA ÇAAAAA???? Dan
Tom a écrit:QuoteDanSteph a écrit:C'EST QUOA ÇAAAAA???? DanUn nouveau projet de Dagoo ?? J'ai rien vu, ni entendu à ce sujet là pour le moment ! Il faudrait une petite annonce
oapiGetGlobalPos (baseName,&GSpacecraftPos); oapiGetGlobalPos(TargetName, &GSunPos); Global2Local(GSpacecraftPos, SpacecraftPos); Global2Local(GSunPos, SunPos); pos = SunPos - SpacecraftPos;
oapiGetGlobalPos (baseName,&GSpacecraftPos);oapiGetGlobalPos(TargetName, &GSunPos); Global2Local(GSpacecraftPos, SpacecraftPos); Global2Local(GSunPos, SunPos); pos = SunPos - SpacecraftPos; Quelqu'un aurait une idée ?
OBJHANDLE ObjHandleSun = oapiGetObjectByName ("sun");
VECTOR3 GSpacecracftPos;VECTOR3 GSunPos;VECTOR3 SpacecracftPos;VECTOR3 SunPos;VECTOR3 pos;oapiGetGlobalPos (GetHandle(),&GSpacecraftPos);oapiGetGlobalPos(ObjHandleSun, &GSunPos);Global2Local(GSpacecraftPos, SpacecraftPos);Global2Local(GSunPos, SunPos);pos = SunPos - SpacecraftPos;
tofitouf a écrit:étrange éffectivement.Mais y'a totu de même un truc qui me chiffone :oapiGetGlobalPos (GetHandle(),&GSpacecraftPos); demande la position globale de ton vaisseau. Global2Local(GSpacecraftPos, SpacecraftPos); la repositionne par rapport à... ton vaisseau donc on devrais obtenir zero......me gourre-je ?
OBJHANDLE ObjHandleSun = oapiGetObjectByName ("sun");VECTOR3 GSpacecracftPos;VECTOR3 GSunPos;VECTOR3 SpacecracftPos;VECTOR3 SunPos;VECTOR3 pos;oapiGetGlobalPos (GetHandle(),&GSpacecraftPos);oapiGetGlobalPos(ObjHandleSun, &GSunPos);Global2Local(GSpacecraftPos, SpacecraftPos);Global2Local(GSunPos, SunPos);pos = SunPos - SpacecraftPos;
sprintf(oapiDebugString(),"Distance: %.2f Yaw: %.2f Pitch %.2f",dDistance,yaw,pitch );
double dDistance = sqrt(pow(pos.x, 2) + pow(pos.y, 2) + pow(pos.z, 2));