![]() |
![]() |
|
|
|||||||
| Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
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;
}
Code:
distanz=distance(latit(), longit(), lat_ziel, lon_ziel) 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 |
|
|
|
|
|
#2 |
|
Jr. Member
![]() Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90
|
Im Prinzip kannst Du natürlich in einer GAUGECALLBACK-Funktion die Berechnungen durchführen, in allen Gauges zugänglichen Variablen speichern und dann auf diese zugreifen. Andererseits ist die Berechnung die Du brauchst etwas, was der durchschnittliche Prozessor problemlos nebenher erledigt. Ich zweifle, dass Du das überhaupt merkst ob diese Berechnungen ein- oder mehrfach ausgeführt werden.
Arne Bartels P.S. für Großkreise gibt es übrigens eine modifizierte Formel, die für kurze Distanzen genauer ist, besonders bei Distanz 0 nicht ausflippt, müsste ich aber erst mal wieder ausgraben. |
|
|
|
|
|
#3 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
OK danke, ich werde es dann so lassen, wie es programiertechnisch am übersichtlichsten ist.
Wo wie beim Thema Großkreis sind: Gibt es eine Formel für den Kurs zwischen zwei Punkten, so dass der Kurs über die ganze Strecke konstant bleibt und die Formel nicht nur den zu fliegenden Anfangskurs berechnet? D.h. der Flugweg liegt nicht auf einem Großkreis, sondern auf einer Loxodrome (Kursgleiche). Gruß Philipp |
|
|
|
|
|
#4 |
|
Jr. Member
![]() Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90
|
Ich habe mich nie mit Loxodromen beschäftigt. Es gab (gibt) eine Seite "Aviations Formulas" oder so ähnlich (URL habe ich gerade nicht bereit), wo meines Wissens Großkreis- und Loxodromformeln beschrieben sind. Oder Du schaust mal in einer besseren Formelsammlung nach, meine liegt im Büro, da kann ich erst morgen nachschauen.
Arne Bartels |
|
|
|
|
|
#5 |
|
Jr. Member
![]() Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90
|
Probier mal
http://www.rainerstumpe.de/HTML/body_kurse2.html und http://www.rainerstumpe.de/HTML/body_kurse3.html So einen ähnlichen Ansatz habe ich gestern probiert, aber mich irgendwo verhaspelt. Arne Bartels |
|
|
|
|
|
#6 |
|
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
Moin zusammen,
ich habe die URL in meinen Bookmarks gelagert. Ist wirklich nützlich: http://williams.best.vwh.net/avform.htm |
|
|
|
|
|
#7 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
Ich habe ein fantastisches Dokument gefunden:
http://williams.best.vwh.net/ftp/avsig/gcircle.pdf Hat sowohl Großkreis- als auch Loxodrom-Berechnungen. Gruß Philipp |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|