Car-PC.info

cPOS Skins - Roundimage fragen

C1500 - Di 06 Nov, 2007 14:27
Titel: Roundimage fragen
Hi,

ich spiel gerade mit Roundimage rum
Dabei wollte ich mal eine Drehende Tachoscheibe mit festem Zeiger darstellen.

Code ist so:
RoundImage0Function=sensor_speed
RoundImage0Picture=speed.gif
RoundImage0Mask=speedcover.gif
RoundImage0MaskX=260
RoundImage0MaskY=135
RoundImage0Min=0
RoundImage0Max=260
RoundImage0AngleStart=0
RoundImage0AngleEnd=360
RoundImage0Direction=1
RoundImage0Refresh=
RoundImage0Alpha=255
RoundImage0ScaleX=100
RoundImage0ScaleY=100
RoundImage0X=260
RoundImage0Y=135

Jedoch klappt das mit der Berechnung nicht so ganz.
Was geben die Min und Max Werte denn an?

Bisher hab ich es nur geschaft, wenn ich das Eingangssignal per Sensor so umgerechnet habe, das als Maximum 360 erreicht wird.

Wenn ich die Min und Max Werte wie oben auf 260 stelle, dreht die Grafik nur bis 260°.


Gibt es denn eine Möglichkeit dem Roundimage zu sagen, das z.B. bei sensor_speed = 260 die Grafik um 359.9° gedreht sein soll?
Also bei 130kmh um 180°?
Wen ja, wie stell ich das ein?

Leider ist auch nur ein Image möglich.
Auch wenn es durchsichtig ist (hintergund 100% Blau und als Gif)
Es überdeckt immer das dahinterliegende.
Kann es sein, das bei Roundimage auch kein Transparent von GIF´s funktioniert?

Und was bedeutet Alpha und Refresh?

Gruss Peer
Freezer - Di 06 Nov, 2007 14:44
Titel: Re: Roundimage fragen
C1500 hat folgendes geschrieben:
Gibt es denn eine Möglichkeit dem Roundimage zu sagen, das z.B. bei sensor_speed = 260 die Grafik um 359.9° gedreht sein soll?
Also bei 130kmh um 180°?
Wen ja, wie stell ich das ein?


kannst nicht einfach einen zweiten sensor mit 1.3846 * sensor_speed anlegen?
C1500 - Di 06 Nov, 2007 15:11
Titel:
Ja klar, so hab ich das aktuell gelöst.

Aber ich kann mir nicht vorstellen, dass das der Sinn von Min und Max sein soll.
Wozu dann noch die AngleStart und AngleEnd?
nordlicht_68 - Mi 07 Nov, 2007 00:46
Titel:
Hallo,

Also, ich denke das so und in meinen skinn hat auch so geklappt:

zunächst muss cpos ja wissen ob du einen vollkreis darstellen möchtes, zB üblicherweise für einen kompass - ja, also 360° -> AngleStart =0 End 360. ZB eine Tacho anzeige ist normal kein vollkreis, sondern evt. nur 280°. Also AngleEnd 280.

Dann muss du cpos ja noch erzählen wie denn der Werte bereich sein soll, d.h. was am ende des kreises für ein Wert stehen soll, zB bei Tacho ein Max Wert von 240km/h am ende des 280° Keises, dann muss RoundImage0Max=240.

Das mit den transparenz habe ich zwar in meinem Laguna2 Skin hinbekommen, aber das war von shaneL gar nicht so vorgesehen, er wolllte sich das noch ansehen, habe aber es bisher in keinem changelog was darüber gelesen.

gruss
sTEPHAN
shaneL - Mi 07 Nov, 2007 08:37
Titel:
exakt so wie von nordlicht beschrieben sollts funktionieren - ich hab mich dabei gänzlich an die bestehenden konventionen bei den gauges gehalten, um verwirrung zu vermeiden.
@peer
transparent für das image ist 100% schwarz - ich hätte damals eigentlich schon gerne hierfür auch blau genommen, allerdings gabs in dem hierfür verwendeten bestehenden klassenmodul einen fehler, dem ich erst kürzlich auf die schliche gekommen bin ...war leider nicht ganz ohne da durchzusteigen Wink
mit alpha lässt sich das objekt transparent in den hintergund zeichnen, dabei wird der schwarze rand automatisch entfernt.
mask ist eine alternative methode, die für scheiben verwendet werden kann - spart bei sehr grossen objekten deutlich cpulast ( dabei wird der schwarze rand durch ein übliches blau maskiertes gif abgedeckt bzw. auch gleichzeitig ein zeiger überlagert ...alles dazu in der changelog) sofern du eine scheibe drehen lässt und dabei keinen vollkreis willst, ist das naturgemäß auch die einzige möglichkeit.
mehrere objekte ging bislang nur ohne alpha - hab das aber mittlerweile schon im svn gefixt, jetzt ist eine beliebige anzahl möglich, auch gleichzeitige verwendung in einer box - allerdings sollten sich die objekte mit alpha nicht überschneiden, da diese direkt in den hintergund gezeichnet werden.
C1500 - Mi 07 Nov, 2007 11:45
Titel:
Also sollte doch bei Max=260 dei Grafik bei einem Eingangswert von 260(kmh) um 360° gedreht sein.

Das ist leider nicht der Fall.

Gestern habe ich diesen Code getestet:
Code:
RoundImage0Function=sensor_speed
RoundImage0Picture=speed.gif
RoundImage0Mask=tachocover.gif
RoundImage0MaskX=225
RoundImage0MaskY=100
RoundImage0Min=0
RoundImage0Max=260
RoundImage0AngleStart=360
RoundImage0AngleEnd=0
RoundImage0Direction=1
RoundImage0Refresh=
RoundImage0Alpha=255
RoundImage0ScaleX=100
RoundImage0ScaleY=100
RoundImage0X=225
RoundImage0Y=100


Und das mit unten angehängter Grafik.

Wenn ich jetzt ca. 100 fahre, wird auf der Grafik aber nur ca. 70 angezeigt.
Es scheint so, als ob er als Max-Wert trotzdem 360 nimmt.
(So schnell ist mein Stilo aber nicht, deshalb kann ich das nicht testen Very Happy )

@shaneL: Seh ich das richtig, das der Hintergund der gedrehten GIF-Grafik also 100% Schwarz sein muss, damit sie durchsichtig wird?

Gruss Peer
nordlicht_68 - Mi 07 Nov, 2007 12:00
Titel:
Hi Peer,

sorry, ich kanns zZ nicht testen bzw. bestätigen, da ich round image bisher nur beim kompass verwendet habe und der ist bekanntlich 360°....

mal sehn wie zeitlich heute aussieht oder gucken was shaneL dazu sagt
nordlicht_68 - Mi 07 Nov, 2007 12:48
Titel:
C1500 hat folgendes geschrieben:
Es scheint so, als ob er als Max-Wert trotzdem 360 nimmt.
(So schnell ist mein Stilo aber nicht, deshalb kann ich das nicht testen Very Happy )


Versuche dochmal anstatt den sensor wert den virtuellen GPS Wert für GPS_speed zu nehmen, der geht ja höher, oder den Winkel wert (GPS_Bearing), der geht auf jeden Fall bis 360°.
dann würde sich deine vermutung ja bestätigen und wiederlegen....
C1500 - Mi 07 Nov, 2007 14:00
Titel:
Ich teste ja gerade mit GPS_Speed.
Das geht dann bis 300.

Die Anzeige bleibt immer gleich versetzt.
Der Faktor für den Verstatz ist genau wie Freezer schon geschrieben hat 1,3846.
(Das stimmt natürlich nur, wenn der Max-Wert 260 sein soll)

Erst wenn ich den Ausgangs-Sensor mit in einen neuen Sensor mit diesem Faktor umrechne stimmt die Anzeige.

Min und Max definieren anscheinend nur den Bereich, in dem das Roundimage auf die Werte reagiert.
Setzt ich den Wert auf 100, dreht sich das Image auch nur bis GPS_speed 100 erreicht hat. Danach bleibt es stehen.

Direction verhält sich auch merkwürdig.
Direction=0 --> Roundimage dreht sich garnicht
Direction=1 --> Roudnimage dreht sich gegen den Uhrzeigersinn
Direction=2 --> Roundimage dreht sich gegen den Uhrzeigersinn aber doppelt so schnell
Direction=2 --> Roundimage dreht sich gegen den Uhrzeigersinn aber dreifach so schnell

Eine Änderung der Drehrichung lässt sich nur durch änderen der AngleStart auf 360 und AngleEnd auf 0 erreichen.
shaneL - Mi 07 Nov, 2007 16:55
Titel:
peer - du solltest wirklich die changelog lesen Wink
für gegenuhrzeigersinn directions=-1
die drehgrafik muss keine gif sein, geht auch jpg oder bmp ( bei jpg musst halt nur drauf achten, dass schwarz auch 100 schwarz bleibt)
nur für die maske dann geg. gif verwenden.
wegen min, max: hab das eigentlich für tacho ausgiebig getestet, möglicherweise hab ich aber bei ner späteren änderung doch was verhauen.
ich schau's mir nochmal an.

gruss
C1500 - Mi 07 Nov, 2007 16:57
Titel:
super danke...

*schäm und die changelog weiterlese*
nordlicht_68 - Mi 07 Nov, 2007 17:25
Titel:
shaneL hat folgendes geschrieben:
du solltest wirklich die changelog lesen Wink


das kommt mir verdammt bekannt vor Twisted Evil
shaneL - Mi 07 Nov, 2007 17:42
Titel:
habs mir grade nochmal im code angeschaut - min und max begrenzen wirklich nur ...keine ahnung warum ich das so gemacht habe, aber irgendwie gings trotzdem ...evtl. auch nur zuviel sonne in der zeit Very Happy
ich kümmer mich drum Wink

gruss
shaneL - Mi 07 Nov, 2007 21:36
Titel:
@peer
hast pn - sollte jetzt funktionieren

gruss
C1500 - Do 08 Nov, 2007 12:12
Titel:
Jap, es funzt...

Jetzt zeigt er bei 180 auch 180 an.
Min und Max sind somit der Bereich der Anzeige.

Es ist also kein Umrechnugn per Sensor mehr notwendig.

Danke Gruss Peer
Alle Zeiten sind GMT + 1 Stunde
Powered by phpBB2 Plus and Kostenloses Forum based on phpBB