WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Simulationen > Designer Forum

Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 23.02.2003, 11:59   #1
pschartau
Newbie
 
Registriert seit: 05.02.2003
Beiträge: 12


Frage Multigauges, shared variables

Hallo,
ich habe mir in C eine kleine Gauge geschrieben, die ich jetzt gerne in Multigauges umwandeln kann, damit ich verschiedene Teile im Cockpit unterschiedlich positionieren kann. Jetzt habe ich eine kleine Frage bzg. globalen Variablen und Performance.
Ein Teil der Gauge berechnet die Distanz von der derzeitigen Flugzeugposition zu einem bestimmten Punkt. Auf den berechneten Wert sollen alle Subgauges zugreifen können. Deswegen habe ich in meinem Mastre Source File folgendes stehen:
Code:
/////////////////////////////////////////////////////////////////////////////
// Getting FS internal variables
/////////////////////////////////////////////////////////////////////////////
MODULE_VAR curr_lat = {PLANE_LATITUDE};
FLOAT64 latit() {
  FLOAT64 result;
  lookup_var(&curr_lat);
  result=curr_lat.var_value.n;
  result=result/40007000.0*360.0;
  return result;
}

MODULE_VAR curr_long = {PLANE_LONGITUDE};
FLOAT64 longit() {
  FLOAT64 result;
  lookup_var(&curr_long);
  result=curr_long.var_value.n;
  result=result/281474976710656.0*360.0;
  return result;
}

/////////////////////////////////////////////////////////////////////////////
// Distance function
/////////////////////////////////////////////////////////////////////////////
FLOAT64 distance(FLOAT64 lat1, FLOAT64 lon1, FLOAT64 lat2, FLOAT64 lon2) {
  FLOAT64 result;
  result=(FLOAT64)(((180*60)/PI)*(acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2))));
  return result;
}
Wenn jetzt eine Multigauge die Distanz braucht, füge ich einfach folgenden Code an der gewünschten Stelle ein:
Code:
distanz=distance(latit(), longit(), lat_ziel, lon_ziel)
(natürlich nicht wortwörtlich so, man muss die Koordinaten für die Formel vorher noch in radians umwandeln...)


Ich bin jetzt nur ein wenig besorgt wegen der Performance, da alle Functionen ja pro Update-Cycle mehrmals aufgerufen werden. Ist es sinnvoll, das so zu machen, oder gibt es einen Weg, wo ein bissel Prozessorlast gespart wird?
Gruß
Philipp
pschartau ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist an.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:03 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag