การแปลง 2D

การเปลี่ยนแปลงหมายถึงการเปลี่ยนกราฟิกบางส่วนเป็นอย่างอื่นโดยใช้กฎ เราสามารถเปลี่ยนรูปแบบได้หลายแบบเช่นการแปลการปรับขนาดขึ้นหรือลงการหมุนการตัดเฉือน ฯลฯ เมื่อการเปลี่ยนแปลงเกิดขึ้นบนระนาบ 2 มิติจะเรียกว่าการแปลง 2 มิติ

การแปลงร่างมีบทบาทสำคัญในคอมพิวเตอร์กราฟิกเพื่อจัดตำแหน่งกราฟิกบนหน้าจอและเปลี่ยนขนาดหรือการวางแนว

พิกัดที่เป็นเนื้อเดียวกัน

ในการดำเนินการตามลำดับของการเปลี่ยนแปลงเช่นการแปลตามด้วยการหมุนและการปรับขนาดเราจำเป็นต้องทำตามกระบวนการตามลำดับ -

  • แปลพิกัด
  • หมุนพิกัดที่แปลแล้วจากนั้น
  • ปรับขนาดพิกัดที่หมุนเพื่อทำการแปลงคอมโพสิตให้เสร็จสมบูรณ์

เพื่อให้กระบวนการนี้สั้นลงเราต้องใช้เมทริกซ์การแปลง 3 × 3 แทนเมทริกซ์การแปลง 2 × 2 ในการแปลงเมทริกซ์ 2 × 2 เป็นเมทริกซ์ 3 × 3 เราต้องเพิ่มพิกัดดัมมี่พิเศษ W

ด้วยวิธีนี้เราสามารถแทนจุดด้วยตัวเลข 3 ตัวแทนที่จะเป็น 2 จำนวนซึ่งเรียกว่า Homogenous Coordinateระบบ. ในระบบนี้เราสามารถแสดงสมการการแปลงทั้งหมดในการคูณเมทริกซ์ จุดคาร์ทีเซียน P (X, Y) สามารถแปลงเป็นพิกัดที่เป็นเนื้อเดียวกันได้โดย P '(X h , Y h , h)

การแปล

การแปลจะย้ายวัตถุไปยังตำแหน่งอื่นบนหน้าจอ คุณสามารถแปลจุดใน 2 มิติได้โดยเพิ่มพิกัดการแปล (t x , t y ) ไปยังพิกัดเดิม (X, Y) เพื่อรับพิกัดใหม่ (X ', Y')

จากรูปด้านบนคุณสามารถเขียนได้ว่า -

X’ = X + tx

Y’ = Y + ty

คู่ (t x , t y ) เรียกว่าเวกเตอร์การแปลหรือกะเวกเตอร์ สมการข้างต้นสามารถแสดงโดยใช้เวกเตอร์คอลัมน์

$ P = \ frac {[X]} {[Y]} $ p '= $ \ frac {[X']} {[Y ']} $ T = $ \ frac {[t_ {x}]} {[ t_ {y}]} $

เราสามารถเขียนเป็น -

P’ = P + T

การหมุน

ในการหมุนเราหมุนวัตถุที่มุมเฉพาะθ (theta) จากจุดกำเนิด จากรูปต่อไปนี้เราจะเห็นว่าจุด P (X, Y) อยู่ที่มุมφจากพิกัด X แนวนอนโดยมีระยะทาง r จากจุดกำเนิด

สมมติว่าคุณต้องการหมุนที่มุมθ หลังจากหมุนไปยังตำแหน่งใหม่คุณจะได้รับจุดใหม่ P '(X', Y ')

การใช้ตรีโกณมิติมาตรฐานพิกัดดั้งเดิมของจุด P (X, Y) สามารถแสดงเป็น -

$ X = r \, cos \, \ phi ...... (1) $

$ Y = r \, sin \, \ phi ...... (2) $

เช่นเดียวกับที่เราสามารถแทนจุด P '(X', Y ') เป็น -

$ {x} '= r \: cos \: \ left (\ phi \: + \: \ theta \ right) = r \: cos \: \ phi \: cos \: \ theta \: - \: r \ : sin \: \ phi \: sin \: \ theta ....... (3) $

$ {y} '= r \: sin \: \ left (\ phi \: + \: \ theta \ right) = r \: cos \: \ phi \: sin \: \ theta \: + \: r \ : บาป \: \ phi \: cos \: \ theta ....... (4) $

การแทนสมการ (1) & (2) ใน (3) & (4) ตามลำดับเราจะได้

$ {x} '= x \: cos \: \ theta - \: y \: sin \: \ theta $

$ {y} '= x \: sin \: \ theta + \: y \: cos \: \ theta $

แทนสมการข้างต้นในรูปแบบเมทริกซ์

$$ [X 'Y'] = [XY] \ begin {bmatrix} cos \ theta & sin \ theta \\ −sin \ theta & cos \ theta \ end {bmatrix} หรือ $$

P '= ป. ร

โดยที่ R คือเมทริกซ์การหมุน

$$ R = \ begin {bmatrix} cos \ theta & sin \ theta \\ −sin \ theta & cos \ theta \ end {bmatrix} $$

มุมการหมุนสามารถเป็นบวกและลบได้

สำหรับมุมการหมุนที่เป็นบวกเราสามารถใช้เมทริกซ์การหมุนด้านบนได้ อย่างไรก็ตามสำหรับการหมุนมุมลบเมทริกซ์จะเปลี่ยนไปตามที่แสดงด้านล่าง -

$$ R = \ begin {bmatrix} cos (- \ theta) & sin (- \ theta) \\ -sin (- \ theta) & cos (- \ theta) \ end {bmatrix} $$

$$ = \ start {bmatrix} cos \ theta & −sin \ theta \\ sin \ theta & cos \ theta \ end {bmatrix} \ left (\ เพราะ cos (- \ theta) = cos \ theta \; และ \; บาป (- \ theta) = −sin \ theta \ right) $$

การปรับขนาด

ในการเปลี่ยนขนาดของวัตถุจะใช้การแปลงมาตราส่วน ในขั้นตอนการปรับขนาดคุณจะขยายหรือบีบอัดขนาดของวัตถุ การปรับมาตราส่วนสามารถทำได้โดยการคูณพิกัดเดิมของวัตถุด้วยตัวคูณมาตราส่วนเพื่อให้ได้ผลลัพธ์ที่ต้องการ

ให้เราสมมติว่าพิกัดเดิมคือ (X, Y) ปัจจัยการปรับขนาดคือ (S X , S Y ) และพิกัดที่ผลิตคือ (X ', Y') สิ่งนี้สามารถแสดงทางคณิตศาสตร์ได้ดังที่แสดงด้านล่าง -

X' = X . SX and Y' = Y . SY

ปัจจัยการปรับขนาด S X , S Y จะปรับขนาดวัตถุในทิศทาง X และ Y ตามลำดับ สมการข้างต้นสามารถแสดงในรูปแบบเมทริกซ์ดังต่อไปนี้ -

$$ \ binom {X '} {Y'} = \ binom {X} {Y} \ begin {bmatrix} S_ {x} & 0 \\ 0 & S_ {y} \ end {bmatrix} $$

หรือ

P’ = P . S

โดยที่ S คือเมทริกซ์มาตราส่วน ขั้นตอนการปรับขนาดจะแสดงในรูปต่อไปนี้

ถ้าเราให้ค่าน้อยกว่า 1 ให้กับค่ามาตราส่วน S เราก็สามารถลดขนาดของวัตถุได้ หากเราให้ค่ามากกว่า 1 เราก็สามารถเพิ่มขนาดของวัตถุได้

การสะท้อนกลับ

การสะท้อนเป็นภาพสะท้อนของวัตถุดั้งเดิม กล่าวอีกนัยหนึ่งเราสามารถพูดได้ว่าเป็นการหมุน 180 ° ในการเปลี่ยนแปลงการสะท้อนขนาดของวัตถุจะไม่เปลี่ยนแปลง

ตัวเลขต่อไปนี้แสดงการสะท้อนตามแกน X และ Y และเกี่ยวกับจุดกำเนิดตามลำดับ

เฉือน

การเปลี่ยนแปลงที่เอียงรูปร่างของวัตถุเรียกว่าการแปลงเฉือน มีการแปลงเฉือนสองแบบX-Shear และ Y-Shear. หนึ่งกะค่าพิกัด X และค่าพิกัด Y กะอื่น ๆ อย่างไรก็ตาม; ในทั้งสองกรณีมีเพียงพิกัดเดียวเท่านั้นที่เปลี่ยนพิกัดและอื่น ๆ จะรักษาค่าไว้ การตัดเฉือนเรียกอีกอย่างว่าSkewing.

X-Shear

X-Shear จะรักษาพิกัด Y และทำการเปลี่ยนแปลงกับพิกัด X ซึ่งทำให้เส้นแนวตั้งเอียงไปทางขวาหรือซ้ายดังแสดงในรูปด้านล่าง

เมทริกซ์การเปลี่ยนแปลงสำหรับ X-Shear สามารถแสดงเป็น -

$$ X_ {sh} = \ begin {bmatrix} 1 & shx & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \ end {bmatrix} $$

Y '= Y + Sh y . X

X '= X

Y- เฉือน

Y-Shear รักษาพิกัด X และเปลี่ยนพิกัด Y ซึ่งทำให้เส้นแนวนอนเปลี่ยนเป็นเส้นที่ลาดขึ้นหรือลงดังแสดงในรูปต่อไปนี้

Y-Shear สามารถแสดงในเมทริกซ์จาก -

$$ Y_ {sh} \ begin {bmatrix} 1 & 0 & 0 \\ shy & 1 & 0 \\ 0 & 0 & 1 \ end {bmatrix} $$

X'= X + Sh x

Y '= Y

การแปลงคอมโพสิต

หากการแปลงระนาบ T1 ตามด้วยการแปลงระนาบที่สอง T2 ผลลัพธ์นั้นอาจถูกแทนด้วยการแปลงเดี่ยว T ซึ่งเป็นองค์ประกอบของ T1 และ T2 ตามลำดับนั้น สิ่งนี้เขียนเป็น T = T1 ∙ T2

การแปลงคอมโพสิตสามารถทำได้โดยการต่อเมทริกซ์การแปลงเพื่อให้ได้เมทริกซ์การแปลงแบบรวม

เมทริกซ์รวม -

[T][X] = [X] [T1] [T2] [T3] [T4] …. [Tn]

โดยที่ [Ti] คือการรวมกันของ

  • Translation
  • Scaling
  • Shearing
  • Rotation
  • Reflection

การเปลี่ยนแปลงลำดับของการแปลงจะนำไปสู่ผลลัพธ์ที่แตกต่างกันเนื่องจากโดยทั่วไปการคูณเมทริกซ์จะไม่สะสมนั่นคือ [A] [B] ≠ [B]. [A] และลำดับการคูณ จุดประสงค์พื้นฐานของการสร้างการเปลี่ยนแปลงคือการเพิ่มประสิทธิภาพโดยใช้การแปลงแบบประกอบเพียงครั้งเดียวไปยังจุดหนึ่งแทนที่จะใช้ชุดของการเปลี่ยนแปลงทีละอย่าง

ตัวอย่างเช่นในการหมุนวัตถุเกี่ยวกับจุดใดจุดหนึ่ง (X p , Y p ) เราต้องดำเนินการสามขั้นตอน -

  • แปลจุด (X p , Y p ) เป็นจุดเริ่มต้น
  • หมุนมันเกี่ยวกับจุดกำเนิด
  • สุดท้ายให้แปลจุดศูนย์กลางของการหมุนกลับที่เดิม