Monitor Aspect Ratio Korrektur
Übersicht

chiBetreff: Monitor Aspect Ratio Korrektur |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Passt die Kamera so an, daß, egal bei welcher Auflösung, keine Verzerrung der Objekte entsteht...
Code: [AUSKLAPPEN] ; Correct monitor aspect ratio on all resolutions ; by chi Const monratio# = 16/10. ; Enter your monitors aspect ratio [ (4/3.), (16/10.), (16/9.), ...] ;Global monratio# = api_GetSystemMetrics(0) / Float(api_GetSystemMetrics(1)) ; Desktopwidth / Desktopheight Const w_width = 800 Const w_height = 600 Const w_mode = 1 Graphics3D w_width, w_height, 0, w_mode : WireFrame 1 cube = CreateCube() cam = CreateCamera() multiX# = 1. multiY# = 1. If w_mode=1 multiX# = monratio# / (4/3.) multiY# = (Float(w_width)/Float(w_height)) / (4/3.) EndIf ScaleEntity cam,multiX,multiY,multiX PositionEntity cam, 0, 0, -5 While Not KeyHit(1) mxs# = MouseXSpeed() mys# = MouseYSpeed() If MouseDown(1) RotateEntity cam, EntityPitch(cam) + (mys#/5), EntityYaw(cam) - (mxs#/5), 0 MoveMouse GraphicsWidth() / 2,GraphicsHeight() / 2 EndIf If KeyDown(200) Then MoveEntity cam, 0, 0, 0.1 If KeyDown(208) Then MoveEntity cam, 0, 0, -0.1 If KeyDown(205) Then MoveEntity cam, 0.1, 0, 0 If KeyDown(203) Then MoveEntity cam, -0.1, 0, 0 UpdateWorld RenderWorld Text 10,10,"no stretching on Text(x,y,txt$) anymore ;)" Flip Delay 1 Wend End |
||
- Zuletzt bearbeitet von chi am So, Aug 16, 2009 0:11, insgesamt 4-mal bearbeitet
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
und? was mach ich jetz damit?..
wär nett, wenn du da n paar wörter drüber verlieren würdest... (wenn ich mcih recht entsinne (bin zu faul zum nachschauen) stehts sogar in den regeln vom codearchiv, dass ma was dazu sagen soll, was ma hier reinstellt (und wenn nciht, dann gehörts rein)) |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, ok! Dachte es wäre selbsterklärend ![]() Passt die Kamera so an, daß, egal bei welcher Auflösung, keine Verzerrung der Objekte entsteht... Wenn du auf einem 16/10 Monitor eine Auflösung von 1280x720 (16/9) verwendest, wird alles in die Höhe gezogen... Benutzt du meinen Code hingegen, wird nichts mehr verzerrt ![]() Zum überprüfen einfach mal "ScaleEntity cam,multiX,multiY,multiX " löschen... cheers, chi |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hört sich praktisch an !!
ich werds mal bei gelegenheit testen, sieht echt nützlich aus. Vielleicht schreibst du dein Beitrag eben noch als Edit unter deinen Code, damit man ned so scrallen muss, bis man die beschreibung findet. Grüße TimBo BTW: was is mim Forum los ? |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Hawkins |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ahh ok, gut zu wissen.
naja selbsterklärend... man muss sich den Quelltext dazu ansehen, was man aber ungern macht, wenn man was sucht. Aber die kurze erklärung ist schon voll ausreichend, danke. Hmm, ich denke, wenn Du als Titel "monitor aspect ratio Korrektur" nimmst, fällt es auch ganz gezielt ins Auge wenn man sowas sucht. Grüße |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das monratio# sollte man automatisch aus der Desktopauflösung entnehmen. Dann hätte der Code zumindest auch einen Sinn, denn so wird kaum ein Enduser hardcoded was ändern können. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@hectic: ich persönlich mach´s eh so (bzw. benutze einen launcher wo man alles einstellen kann), wollte aber auf api im code hier verzichten.
habs editiert! kann jetzt jeder selber entscheiden... cheers, chi |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group