เนื่องจากคุณไม่ได้ระบุระบบปฏิบัติการฉันรู้สึกฟรีที่จะสมมติว่าเป็น GNU / Linux ในกรณีนั้นมีxrandrคำสั่งพร้อม--transformตัวเลือก มีความสุข! (:
จากxrandr หน้าคน (ดูตัวเลือกอื่น ๆ เช่น--out):
--transform a,b,c,d,e,f,g,h,i
ระบุเมทริกซ์การแปลงเพื่อใช้กับเอาต์พุต เลือกฟิลเตอร์ bilinear โดยอัตโนมัติ รูปแบบทางคณิตศาสตร์สอดคล้องกับ:
a b c
d e f
g h i
การแปลงจะขึ้นอยู่กับพิกัดที่เป็นเนื้อเดียวกัน เมทริกซ์คูณด้วยเวกเตอร์พิกัดของพิกเซลของเอาต์พุตให้เวกเตอร์พิกัดที่แปลงแล้วของพิกเซลในบัฟเฟอร์กราฟิก ยิ่งไปกว่านั้นเวกเตอร์ (xy) ของพิกเซลเอาต์พุตจะขยายเป็น 3 ค่า(xyw)โดยที่ 1 เป็นพิกัดwและคูณกับเมทริกซ์ พิกัดอุปกรณ์สุดท้ายของพิกเซลจะถูกคำนวณด้วยการหาร homogenic ที่เรียกว่าโดยพิกัดw ที่ถูกแปลง กล่าวอีกนัยหนึ่งพิกัดอุปกรณ์(x'y ')ของพิกเซลที่ถูกแปลงคือ:
x' = (ax + by + c) / w' and
y' = (dx + ey + f) / w' ,
with w' = (gx + hy + i) .
โดยปกติaและeสอดคล้องกับการปรับในที่XและYแกนcและfสอดคล้องกับการแปลแกนเหล่านั้นและg, hและiเป็นลำดับ 0, 0 และ 1 เมทริกซ์นอกจากนี้ยังสามารถใช้ในการแสดงการเปลี่ยนแปลงที่ซับซ้อนมากขึ้นเช่นการแก้ไขภาพสี่เหลี่ยมคางหมู หรือการหมุน สำหรับการหมุนมุมTสามารถใช้สูตรนี้ได้:
cos T -sin T 0
sin T cos T 0
0 0 1
เป็นอาร์กิวเมนต์พิเศษแทนที่จะส่งเมทริกซ์เราสามารถส่งผ่านสตริงnoneซึ่งในกรณีนี้จะใช้ค่าเริ่มต้น (เมทริกซ์หน่วยที่ไม่มีตัวกรอง)