bernd91364
Cadet 4th Year
- Registriert
- Nov. 2020
- Beiträge
- 93
Hallo,
die Frage bezieht sich nicht (nur) auf Windows 10 da eher grundlegender Natur, aber ich hoffe sie passt trotzdem hierher:
Weiß Jemand (oder weiß wo man das nachlesen kann) wie bei Windows das genau mit Bildschirmgröße und Skalierung funktioniert, wenn man die ändert?
Konkret was mein Problem ist:
Ich habe Windows 10, habe am Notebook die Auflösung 1920 x 1080.
Ausserdem ist "Größe von Text, Apps und anderen Elementen ändern" aktuell auf 125% eingestellt.
Ich habe ein Java Programm, das mit Koordinaten arbeitet (mittels "Robot" Klasse), die in diesem "Setup" abgelesen wurden.
Funktioniert auch wunderbar.
Nun will ich dasselbe Programm in einer virtuellen Maschine, namentlich in virtualbox mit Windows 10, laufen lassen.
Das kann aber maximal als Auflösung 1680 x 1050.
Jetzt müsste ich die Punktkoordinaten, die im alten Setting abgelesen wurden, entsprechend umrechnen ins neue Setting (bzw. mein Programm abändern damit es das automatisch macht)
Ich würde, um möglichst wenig Fehlerquellen zu haben, in der VM auch auf 125% Skalierung stellen, sodass sich nur die Auflösung unterscheidet.
jetzt stellt sich mir halt die Frage:
Wie rechne ich auf gut Deutsch gesagt einen alten Punkt in Koordinaten des neuen Systems um?
Ich würde vermuten dass ich einfach die alten (x1,y1) nehmen kann und mit passendem Faktor umrechnen kann ins neue System.
Namentlich also sowas wie
xneu=xalt*neueBildschirmbreite/alteBildschirmbreite
im beispiel also
xneu=xalt*1680/1920
gleiches für die y koordinate.
halt etwas runden dabei, aber mir kommt es auf 1-2 Pixel abweichung meist nicht drauf an.
Ich jedenfalls vermute mal dass es so linear skaliert. Könnte ja aber auch grundverschieden gehandhabt werden von Windows.
Aber hat hier Jemand wirklich Ahnung von Bildschirmgröße, Skalierung und Co. und kann meine Vermutung totsicher bestätigen?
Oder weiß vielleicht sogar eine microsoft seite oder quelle wo es konkret steht?
Aus Experimenten weiß ich, dass bei gleicher auflösung und skalierungswechsel von 100 auf 125% sich die Pixellänge/breite verändert um 1/1.25
Also länge/breite vorher durch 1.25 geteilt gibt die neue Pixellänge/breite.
die Frage bezieht sich nicht (nur) auf Windows 10 da eher grundlegender Natur, aber ich hoffe sie passt trotzdem hierher:
Weiß Jemand (oder weiß wo man das nachlesen kann) wie bei Windows das genau mit Bildschirmgröße und Skalierung funktioniert, wenn man die ändert?
Konkret was mein Problem ist:
Ich habe Windows 10, habe am Notebook die Auflösung 1920 x 1080.
Ausserdem ist "Größe von Text, Apps und anderen Elementen ändern" aktuell auf 125% eingestellt.
Ich habe ein Java Programm, das mit Koordinaten arbeitet (mittels "Robot" Klasse), die in diesem "Setup" abgelesen wurden.
Funktioniert auch wunderbar.
Nun will ich dasselbe Programm in einer virtuellen Maschine, namentlich in virtualbox mit Windows 10, laufen lassen.
Das kann aber maximal als Auflösung 1680 x 1050.
Jetzt müsste ich die Punktkoordinaten, die im alten Setting abgelesen wurden, entsprechend umrechnen ins neue Setting (bzw. mein Programm abändern damit es das automatisch macht)
Ich würde, um möglichst wenig Fehlerquellen zu haben, in der VM auch auf 125% Skalierung stellen, sodass sich nur die Auflösung unterscheidet.
jetzt stellt sich mir halt die Frage:
Wie rechne ich auf gut Deutsch gesagt einen alten Punkt in Koordinaten des neuen Systems um?
Ich würde vermuten dass ich einfach die alten (x1,y1) nehmen kann und mit passendem Faktor umrechnen kann ins neue System.
Namentlich also sowas wie
xneu=xalt*neueBildschirmbreite/alteBildschirmbreite
im beispiel also
xneu=xalt*1680/1920
gleiches für die y koordinate.
halt etwas runden dabei, aber mir kommt es auf 1-2 Pixel abweichung meist nicht drauf an.
Ich jedenfalls vermute mal dass es so linear skaliert. Könnte ja aber auch grundverschieden gehandhabt werden von Windows.
Aber hat hier Jemand wirklich Ahnung von Bildschirmgröße, Skalierung und Co. und kann meine Vermutung totsicher bestätigen?
Oder weiß vielleicht sogar eine microsoft seite oder quelle wo es konkret steht?
Aus Experimenten weiß ich, dass bei gleicher auflösung und skalierungswechsel von 100 auf 125% sich die Pixellänge/breite verändert um 1/1.25
Also länge/breite vorher durch 1.25 geteilt gibt die neue Pixellänge/breite.