"Kreis" auf 16:10 LCD

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

"Kreis" auf 16:10 LCD

Beitrag von AUGE_OHR »

hi,

Ich mache eine "Kreis" mit

Code: Alles auswählen

GraArc(::oPS,aPos,nRadius,,,,GRA_FILL)
das sieht auf einem 4:3 Bildschirm auch so aus, aber auf einem
16:10 LCD sieht der "Kreis" eher "plattgedrückt" aus.

Ist das "normal" ? wie macht man den unter 16:10 einen "Kreis" ?

gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2936
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo Jimmi,
evtl. Auflösung richtig einstellen :)
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

die Auflösung 1024:768 = 1.33 = 4:3
die Auflösung 1280:1024 = 1.25 = 5:4

Auch bisher gab es andere Seiten/Breitenverhältnisse als 4:3.
In der nativen Auflösung (vermutlich 1600/1050 ???) müssten
die Pixel genau Quatratisch sein. Ein Kreis somit rund, allerdings
allerdings nicht unbedingt da wo du ihn erwartet hättest ;-)
Somit muss Durchmesser und Position variabel angepaßt werden.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,

am besten mal selber ausprobieren :

Code: Alles auswählen


#include "Xbp.ch"
#include "Appevent.ch"
#include "gra.ch"

PROCEDURE APPSYS
RETURN

PROCEDURE MAIN
LOCAL aSize   := AppDesktop():currentSize()
LOCAL aCenter := { aSize[1]/2 ,aSize[2]/2 }
LOCAL nRadius := (aCenter[2]/10)-2
LOCAL nEvent, mp1, mp2, oXbp
LOCAL oDlg, oPS

   oDlg          := XbpDialog():new( ,, {0,0}, aSize )
*   oDlg:title   := "Circle on 16:10 Monitor"
   oDlg:titlebar := .F.
   oDlg:border   := XBPDLG_NO_BORDER
   oDlg:tasklist := .T.
   oDlg:create()
   oDlg:drawingArea:setColorBG( GRA_CLR_BLACK )

   oPS := XBpPresSpace():New()
   oPS:Create(oDlg:drawingArea:WinDevice())

   oDlg:drawingArea:paint := {|| DrawGraphic(oPS,aCenter,nRadius ) }

   nEvent := 0
   DO WHILE nEvent <> xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      IF nEvent == xbeP_Keyboard .and. mp1 == xbeK_ESC
         EXIT
      ENDIF
      oXbp:handleEvent( nEvent, mp1, mp2 )
   ENDDO

RETURN

PROCEDURE DrawGraphic( oPS,aCenter,nRadius )
LOCAL aAttr := ARRAY(GRA_AL_COUNT)
LOCAL i := 0, iMax
LOCAL aSize   := AppDesktop():currentSize()
LOCAL aStart, aEnd

   aAttr[GRA_AL_MIXMODE]   := GRA_FGMIX_XOR

   FOR i:=1 TO 10
      aAttr[GRA_AL_COLOR]     := i+1
      oPS:setAttrLine(aAttr)

      GraArc( oPS ,aCenter, INT(nRadius*i) )  // Kreis zeichnen
   NEXT

   aAttr[GRA_AL_COLOR]     := 8
   oPS:setAttrLine(aAttr)

   i := 0
   iMax := aSize[1]/10
   FOR i:=0 TO aSize[1] STEP iMax
       aStart := {i,0}
       aEnd   := {i,aSize[2]}
       GraLine(oPS,aStart,aEnd)
   NEXT

   i := 0
   iMax := aSize[2]/10
   FOR i:=0 TO aSize[2] STEP iMax
       aStart := {       0,i}
       aEnd   := {aSize[1],i}
       GraLine(oPS,aStart,aEnd)
   NEXT

RETURN
für mich sieht das unter 16:10 "platt" gedrückt aus, oder ist das eine
optischen Täuschung ?

gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Jimmy.

Der erste April ist erst in zwei Wochen. :lol:

Ein Monitor mit dem Seitenverhältnis 16:9 (oder einem anderen) zeigt im Verhältnis zu einem 4:3 Monitor in der Breite mehr Pixel an, aber das Größen- und Darstellungsverhältnis ändert sich selbstverständlich nicht. Wenn Du einen abgeflachten Kreis zu sehen meinst, liegt das möglicherweise daran, daß ein Margarinebrot gegessen und anschließend auf Deine Brille gefaßt hast. 8)

Edit: Du solltest den Monitor natürlich auch mit einer geeigneten Darstellungseinstellung betreiben. Wenn Du 1024 x 768 gewählt hast, muß der Kerle eiförmige Kreise anzeigen. Dann sollte aber auch alles andere unsauber - und davon abgesehen unscharf - aussehen.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,
Wolfgang Ciriack hat geschrieben: evtl. Auflösung richtig einstellen :)
tatsächlich hab ich es überprüft : Du hast Recht !!!

ich hab für den 16:10 "nur" 1280x1024. Muss mal sehen ob die GFK (alt)
überhaupt mehr als 1280 kann. Bislang hab ich den "nur" als TV Monitor
genutzt und das geht per Overlay sodass die Aüflösung keine Rolle spielte
wie auch bei Vilmen ... nur das mir der Ferrari F1 noch "breiter" vorkam.

ok danke,
gruss by OHR
Jimmy
Antworten