Visa ämne
 Skriv ut ämne
SFP Challenge (Gripen och matematik)
Jag kan lite koda men är sämst på matematik så behöver er hjälp.

Vad handlar det om?
I Gripen finns en display som visar kameran, kameran pekar rakt fram men skall styras och titta på det målet man har låst. T ex lasermål på marken eller ett flygplan för identifering.

Vad vi vet?
Gripens position (höjdskillnad!)
Målets position
Gripen's pitch/bank

I första versionen kan vi anta att Gripen ligger helt platt i luften, men på sikt måste vi få in att flygplanet kanske rollar eller liknande och justera kameran efter det.

Vad är output?
Output skall vara ett x och ett y värde för justera kameran. Siffran är mellan 0 och 1, för 360 grader.

Sådär, bidra gärna genom att skriva kod och använd personer som skrivit före dig för att komma på förbättringar ändringar istället för uppfinna allt själva.


gick smidigare än förväntat, tar dock ingen hänsyn till pitch/bank. Är lite osäker på hur skall lösa det.
Redigerat av Chris_Acrobat den 2015-06-29 21:10
EDIT: Sent svar.

Vad menar du att problemet är med Pitch/Bank?
Redigerat av Chris_Acrobat den 2015-06-29 21:10
CAUTION: I'm a screamer and I'm using Voice-Activated!
Räkna ut den resulterande vektorn från vektorn mot målet och planets vektor. Finns färdiga funktioner för att få ut ett objekts vektor och göra olika vektor operationer.
Hör vad du säger, osäker på om förstår vad du menar Smile
Snygg video! Går det att göra så att man kan byta mellan visuell och infraröd kamera?
YouTube:
https://www.youtube.com/user/MasterMindEcho/videos
Hade gärna fått lite tips här..

Echo, kanske men inte säker..

Kod Källa  

_gripen = _this;

while {alive _gripen} do
{
   sleep 0.01;
   hintSilent "No target";
   if (alive cursorTarget) then
   {
      _vector = [vectorUp _gripen,getposasl cursorTarget] call BIS_fnc_vectorFromXToY;
      _vectorCos = vectorUp _gripen vectorCos getposasl cursorTarget;

      _dirX = [_gripen,cursorTarget] call BIS_fnc_relativeDirTo;
      _dirX = 1-(_dirX /360);
      _dirY = ((getposasl cursorTarget select 2)- (getposasl _gripen select 2));
      _dirY = (asin (_dirY / (_gripen distance cursorTarget))/360);
      
      _gripen animate ["targetpod_x", _dirX];
      _gripen animate ["targetpod_y", _dirY];
   };
};
När jag kommer hem (kanske om en vecka) så ska jag se om jag kan klämma, sniffa och stöta lite på koden. Kommer bli kul!
CAUTION: I'm a screamer and I'm using Voice-Activated!
SFP challenge award #1 går till tednoob för löst matematiken Smile

Roligt att ni löste det Smile
YouTube:
https://www.youtube.com/user/MasterMindEcho/videos
Snyggt!
CAUTION: I'm a screamer and I'm using Voice-Activated!
Är kameran placerad under gripen eller är den placerad i luften mellan gripen och målet? (Kan man använda den för att se saker som är längre bort än vad som är inom ens synavstånd? Grin)
CAUTION: I'm a screamer and I'm using Voice-Activated!
kameran är placerad framtill där spaningskameran sitter på riktigt.

men beräkningarna för kameran är från mitten av gripen, så rent teoretiskt är bilden lite off men som ni ser på filmen är det försumbart, och tyvärr verkar Picture in Picture ha en betydligt kortare synfält än spelaren.. så inte alls så bra :/

Tror effekten främst blir att se när man fäller bomber... lite roligare för piloten helt enkelt.


www.x-plane.org/home/urf/aviation/img/saab/gripen/gripen_recc-pod.jpg

Citera

granQ skrev:

Tror effekten främst blir att se när man fäller bomber... lite roligare för piloten helt enkelt.


!! Det slog mig aldrig! Den var redan trevlig, men nu är den mycket trevligare! Grin

Citera

granQ skrev:

kameran är placerad framtill där spaningskameran sitter på riktigt.

men beräkningarna för kameran är från mitten av gripen, så rent teoretiskt är bilden lite off men som ni ser på filmen är det försumbart, och tyvärr verkar Picture in Picture ha en betydligt kortare synfält än spelaren.. så inte alls så bra :/


Det var därför jag tänkte att kameran kan placeras X meter ifrån målet istället, mellan gripen och målet. Jag är ensam hemma nu, så om du skriver koden här så kan jag kanske hinna se om jag kan göra lite matte-magi.
CAUTION: I'm a screamer and I'm using Voice-Activated!
Finns koden på SVN? Hittar den inte.
CAUTION: I'm a screamer and I'm using Voice-Activated!

Citera

_gripen animate ["targetpod_x", _dirX];
_gripen animate ["targetpod_y", _dirY];

Betyder det att targetpod_ är en fysisk del som kameran är fastlimmad på som sen bara behöver riktas?
CAUTION: I'm a screamer and I'm using Voice-Activated!
om du vill ha en direction vektor så är det ju att göra följande.
v1 = måletV - gripenV;

om du sedan vill byga om det till en kamera matris så kan du göra följande
vUp = griepnUpVector;
vLeft = v1 x vUp;

m1 =
[ vLeftx, vLefty, vLeftz, 0 ],
[ vUpx, vUpy, vUpz, 0 ],
[ v1x, v1y, v1z, 0 ]
[ 0, 0, 0, 1 ]

då får du en matris som kommer vara relativ till hur gripen är orienterad i luften även. så om du skulle ha varit upside down med gripen hade då kameran behärskat sig det samma.

hur dock du får in det i arma vet jag ej, men läste någon stans om att man kunde sätta matriser.
Ja undrade mer vad skriptet gör och hur det fungerar. Smile
Jag var också förberedd att skapa matriser, men det verkar som att det inte alls är så som kameran fungerar. (Har aldrig arbetet med en kamera förut, endast BIS_fnc_liveFeed.)
CAUTION: I'm a screamer and I'm using Voice-Activated!