WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Designer Forum (http://www.wcm.at/forum/forumdisplay.php?f=61)
-   -   XML Text to bmp? (http://www.wcm.at/forum/showthread.php?t=199271)

Isra 13.09.2006 23:39

XML Text to bmp?
 
Hallo Zusammen!
Nochmals ne xml Frage:

Ich habe einen Textausgabe die so ausschaut:
PHP-Code:

      <element>
        <
Position X="38" Y="35"/>
        <
text X="73" Y="26" Length="7" Fixed="Yes" Font="Quartz" Adjust="Left" VerticalAdjust="Center" Color="#FF9933" Bright="1"
          <
string> %((A:PLANE LATITUDEdegree latitude))%!08.5f!</string>
        </
text>
      </
element

Jetzt möchte ich aber anstatt der generierten Zahlen, BMP's verwenden, also für jede Zahl von 0 bis 9 ein Bitmap.

Frage nun, wie kriege ich das hin? Grund dafür ist dass ich photoreale Texturen verwenden möchte, die ich mit der Textausgabe nicht hinkriege.

Vielen Dank für Eure Hilfe :-)

harry3 14.09.2006 01:11

Du musst die Zahl zuerst einmal in die einzelnen Stellen trennen.
Nehmen wir als Bsp. die Zahl 123. Die Hunderterstelle ist 1, die Zehnerstelle 2 und die Einerstelle 3.
Die einzelnen Stellen bekommst du mittels einer Modulodivision(=>ermittelt Rest einer Division, Rechenzeichen ist das Prozentzeichen %).
Einerstelle: Zahl%10, Bsp.: 123%10=3
Zehnerstelle: (Zahl%100-Zahl%10)/10, Bsp.: (123%100-123%10)/10=(23-3)/10=2
Hunderterstelle: (Zahl%1000-Zahl%100)/100., Bsp. (123%1000-123%100)/100=1

Du kannst also für jede Stelle eine Variable machen, die die entsprechende Ziffer speichert(Bsp. (L:h_stelle,numbers); (L:z_stelle,numbers), usw...)

Mittels Select-Value-Case fragst du dann für jede Stelle ab, welchen Wert(0...9) sie hat, und du lädst in den Cases dann die entsprechenden Bitmaps.

Bei einer 8.5f Zahl wird dass eine ziemliche Tipparbeit...aber das Grundprinzip ist, wie du siehst, recht einfach.

Übrigens sieht das Radar sehr gut aus! Woher bekommst du denn die Navigationspunkte? Sind die aus dem MS GPS geladen oder ist es eine Bitmap welche du verschiebst???


Grüße,
Harri

Isra 14.09.2006 19:03

Hallo Harri!
Danke für Deine ausführliche Antwort :-) , bin aber doch ziemlich überfordert damit:confused:. Könntest Du evtl. mal ein Beispiel machen, damit ich einen Anhaltspunkt habe um den Rest zu schreiben?:confused:
Was das ganze am Schluss wird, hatte ich Dir mal vor ein paar Wochen gemailt, inkl. xml Code was ich bis anhin schon habe.

Ja die Nav Punkte werden aus dem MS-GPS gelesen, hatte noch nicht die Zeit dies auf ein verschiebbares BMP zu machen. Das Radar kann übrigens noch viel mehr, z.B Online od. AI Traffic anzeigen etc.

harry3 14.09.2006 21:29

Als Beispiel lass ich die Einerstelle der Variable (L:zahl, numbers) anzeigen:

PHP-Code:

//Einerstelle berechnen und in Variable (&gt;L:einerstelle,numbers) speichern
<Element>
 <
Select>
  <
Value>
  (
L:Zahl,numbers10 % (&gt;L:einerstellenumbers)
  </
Value>
 </
Select>
</
Element>

//Die Einerstelle einer ensprechenden Bitmap zuordnen und anzeigen lassen:

<Element>
 <
Select>

//als Wert wird die Einerstelle genommen:
  
<Value>
  (
L:einerstellenumers)
  </
Value>

//und nun gibts für jede Möglichkeit(0...9) einen Case:
  
<Case Value="0">
   <
Image Name="0.bmp"/>
  </Case>

  <Case 
Value="1">
   <
Image Name="1.bmp"/>
  </Case>

//usw...bis zur Ziffer 9.

 
</Select>
<
Element

Ich hoffe ich hab keine Fehler drinnen weil ich es jetzt direkt ins Forum geschrieben habe und nicht erst im FS ausprobiert habe.


Grüße,
Harri

Isra 15.09.2006 19:15

Hallo Harri!
Bombensache, hat soweit tiptop geklappt!:-) Momentan schaut die Sache so aus:

PHP-Code:



<Element
 <
Select
  <
Value
  (
L:Zahl,numbers10 % (>L:einerstellenumbers
  </
Value
 </
Select
</
Element



<
Element
<
Position X="100" Y="0"/>
 <
Select
  <
Value
  (
L:einerstellenumers
  </
Value

 
  <Case 
Value="0"
   <
Image Name="null.bmp"/> 
  </Case> 

  <Case 
Value="1"
   <
Image Name="eins.bmp"/> 
  </Case> 

  <Case 
Value="2"
   <
Image Name="zwei.bmp"/> 
  </Case>

  <Case 
Value="3"
   <
Image Name="drei.bmp"/> 
  </Case>

  <Case 
Value="4"
   <
Image Name="vier.bmp"/> 
  </Case>

  <Case 
Value="5"
   <
Image Name="fuenf.bmp"/> 
  </Case>

  <Case 
Value="6"
   <
Image Name="sechs.bmp"/> 
  </Case>

  <Case 
Value="7"
   <
Image Name="sieben.bmp"/> 
  </Case>

  <Case 
Value="8"
   <
Image Name="acht.bmp"/> 
  </Case>

  <Case 
Value="9"
   <
Image Name="neun.bmp"/> 
  </Case>

 </
Select
</
Element>

<
Element
 <
Select
  <
Value
  (
L:Zahl,numbers100 % (>L:zehnerstellenumbers
  </
Value
 </
Select
</
Element



<
Element
<
Position X="80" Y="0"/>
 <
Select
  <
Value
  (
L:zehnerstellenumers
  </
Value>

  <Case 
Value="0"
   <
Image Name="null.bmp"/> 
  </Case> 

  <Case 
Value="1"
   <
Image Name="eins.bmp"/> 
  </Case> 

  <Case 
Value="2"
   <
Image Name="zwei.bmp"/> 
  </Case>

  <Case 
Value="3"
   <
Image Name="drei.bmp"/> 
  </Case>

  <Case 
Value="4"
   <
Image Name="vier.bmp"/> 
  </Case>

  <Case 
Value="5"
   <
Image Name="fuenf.bmp"/> 
  </Case>

  <Case 
Value="6"
   <
Image Name="sechs.bmp"/> 
  </Case>

  <Case 
Value="7"
   <
Image Name="sieben.bmp"/> 
  </Case>

  <Case 
Value="8"
   <
Image Name="acht.bmp"/> 
  </Case>

  <Case 
Value="9"
   <
Image Name="neun.bmp"/> 
  </Case>

 </
Select
</
Element>


<
Element
 <
Select
  <
Value
  (
L:Zahl,numbers1000 % (>L:hunderterstellenumbers
  </
Value
 </
Select
</
Element



<
Element
<
Position X="60" Y="0"/>
 <
Select
  <
Value
  (
L:hunderterstellenumers
  </
Value>

  <Case 
Value="0"
   <
Image Name="null.bmp"/> 
  </Case> 

  <Case 
Value="1"
   <
Image Name="eins.bmp"/> 
  </Case> 

  <Case 
Value="2"
   <
Image Name="zwei.bmp"/> 
  </Case>

  <Case 
Value="3"
   <
Image Name="drei.bmp"/> 
  </Case>

  <Case 
Value="4"
   <
Image Name="vier.bmp"/> 
  </Case>

  <Case 
Value="5"
   <
Image Name="fuenf.bmp"/> 
  </Case>

  <Case 
Value="6"
   <
Image Name="sechs.bmp"/> 
  </Case>

  <Case 
Value="7"
   <
Image Name="sieben.bmp"/> 
  </Case>

  <Case 
Value="8"
   <
Image Name="acht.bmp"/> 
  </Case>

  <Case 
Value="9"
   <
Image Name="neun.bmp"/> 
  </Case>

 </
Select
</
Element>


<
Element
 <
Select
  <
Value
  (
L:Zahl,numbers10000 % (>L:tausenderstellenumbers
  </
Value
 </
Select
</
Element



<
Element
<
Position X="40" Y="0"/>
 <
Select
  <
Value
  (
L:tausenderstellenumers
  </
Value>

  <Case 
Value="0"
   <
Image Name="null.bmp"/> 
  </Case> 

  <Case 
Value="1"
   <
Image Name="eins.bmp"/> 
  </Case> 

  <Case 
Value="2"
   <
Image Name="zwei.bmp"/> 
  </Case>

  <Case 
Value="3"
   <
Image Name="drei.bmp"/> 
  </Case>

  <Case 
Value="4"
   <
Image Name="vier.bmp"/> 
  </Case>

  <Case 
Value="5"
   <
Image Name="fuenf.bmp"/> 
  </Case>

  <Case 
Value="6"
   <
Image Name="sechs.bmp"/> 
  </Case>

  <Case 
Value="7"
   <
Image Name="sieben.bmp"/> 
  </Case>

  <Case 
Value="8"
   <
Image Name="acht.bmp"/> 
  </Case>

  <Case 
Value="9"
   <
Image Name="neun.bmp"/> 
  </Case>

 </
Select
</
Element>

<
Element
 <
Select
  <
Value
  (
L:Zahl,numbers100000 % (>L:zehntausenderstellenumbers
  </
Value
 </
Select
</
Element



<
Element
<
Position X="20" Y="0"/>
 <
Select
  <
Value
  (
L:zehntausenderstellenumers
  </
Value>

  <Case 
Value="0"
   <
Image Name="null.bmp"/> 
  </Case> 

  <Case 
Value="1"
   <
Image Name="eins.bmp"/> 
  </Case> 

  <Case 
Value="2"
   <
Image Name="zwei.bmp"/> 
  </Case>

  <Case 
Value="3"
   <
Image Name="drei.bmp"/> 
  </Case>

  <Case 
Value="4"
   <
Image Name="vier.bmp"/> 
  </Case>

  <Case 
Value="5"
   <
Image Name="fuenf.bmp"/> 
  </Case>

  <Case 
Value="6"
   <
Image Name="sechs.bmp"/> 
  </Case>

  <Case 
Value="7"
   <
Image Name="sieben.bmp"/> 
  </Case>

  <Case 
Value="8"
   <
Image Name="acht.bmp"/> 
  </Case>

  <Case 
Value="9"
   <
Image Name="neun.bmp"/> 
  </Case>

 </
Select
</
Element

Ok, nun habe ich ja die nötigen 5 Stellen für die Latitude Anzeige.
Wie relate ich nun das Ganze zu (A:PLANE LATITUDE, degree latitude)?

Vielen Dank soweit mal für Deine Hilfe :-)

harry3 15.09.2006 19:33

Wie sieht den das Ausgabeformat von der Variablen aus?
Also steht da 32° 13' 32'' oder wird es als Dezimalzahl angegeben, z.B. 54,5465° oder ganz anders?

Grüße,
Harri

Isra 15.09.2006 19:57

Hmm....also im Original schaut's so aus:

http://www.opus2.ch/Tiger%20INS.jpg

harry3 15.09.2006 20:09

Ja aber es kommt ja drauf an was die Variable ausgibt. Schau dir das mal an.
Laut Bild sollte es in dem Format sein: die ersten beiden Ziffern sind Grad, der Rest dahinter die dazugehörigen Dezimalstellen.

mfg
harri

Isra 15.09.2006 20:21

Ja das stimmt, die ersten 2 sind Grad, danach 3 Dezimalstellen

harry3 15.09.2006 20:40

Zitat:

Original geschrieben von Isra
Ja das stimmt, die ersten 2 sind Grad, danach 3 Dezimalstellen
Also auch bei der FS Varibale?

Wenn ja dann brauchst du die Zahl nur mit 1000 multiplizieren, damit du die Kommastellen wegbekommst. Der Rest ist dann ganz gleich wie oben beschrieben, du bekommst dann insgeamt 5 Ziffern.

Grüße,
Harri


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:42 Uhr.

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