เนื่องจากคุณไม่ได้ระบุระบบปฏิบัติการฉันรู้สึกฟรีที่จะสมมติว่าเป็น 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
ซึ่งในกรณีนี้จะใช้ค่าเริ่มต้น (เมทริกซ์หน่วยที่ไม่มีตัวกรอง)