Computer Graphics : Coordinate system

Coordinate system เป็นเรื่องที่มีความสำคัญมากในการเรียนรู้เรื่อง computer graphics เป็นระบบที่ใช้ตัวเลข(number) สัญญลักษณ์ (symbols) และแกน (axis) เพื่อระบุตำแหน่งของ object ในโลกเสมือน มีรูปแบบที่สำคัญได้แก่


  ♦ Cartesian coordinates

  ♦ Polar coordinates




Cartesian coordinates


2D Cartesian coordinates


ระบบนี้เป็นระบบที่ถูกนำไปใช้งานค่อนข้างบ่อยและกว้างขวางกว่าระบบอื่น ถูกนำเสนอโดยนักคณิตศาสตร์ชาวฝรั่งเศสชื่อ René Descartes ในช่วงศตวรรษที่ 17 ระบบนี้ประกอบด้วย


  ♦ มีแกน (axis) ที่ตั้งฉากกัน 2 แกน วางบนพื้นที่สมมุติเรียกว่า plane แนวตั้งเรียก "Vertical axis หรือ Y axis (แกน y)" และแนวนอนเรียก "Horizontal axis หรือ X axis (แกน X)"

  ♦ จุดที่แกนทั้งสองตัดกันเรียกว่า "origin" บนแกนทั้งสองจะถูกแบ่งออกเป็นส่วนๆมีหมายเลขกำกับ

  ♦ เมื่อแกนทั้งสองตัดกัน ทำให้ plane ถูกแบ่งออกเป็น 4 ส่วน เรียกว่า quadrant 1, quadrant 2,quadrant 3 และ quadrant 4 (ดูรูปที่ 1)

  ♦ บน X axis มีหมายเลขบอกระยะห่างจาก Y axis ไปทั้งทางซ้ายและทางขวา หากนับไปทางซ้ายของ Y axis ตัวเลขจะมีเครื่องหมายลบ (-) นำหน้า เช่น -1,-2,-3,... ทำนองเดียวกันกับตัวเลขบน Y axis จะมีตัวเลขบอกระยะห่างจาก X axis ทั้งทิศขึ้นบนและลงล่าง หากนับไปทางด้านล่างของ X axis จะมีเครื่องหมายลบ (-) นำหน้า

  ♦ การระบุตำแหน่งบน plane เขียนในรูปแบบคู่อันดับ (order pair) (x,y) โดยที่ x คือตัวเลขที่บอกระยะห่างจาก Y axis และ y คือตัวเลขที่บอกระยะห่างจาก X axis

  ♦ ตำแหน่งบน plane ณ จุด origin คือ (0,0) และการนับตำแหน่งของวัตถุบน plane จะต้องเริ่มนับจากจุด origin เสมอ



รูปที่ 1 Cartesian plane

ตัวอย่างการระบุตำแหน่งของจุดสีฟ้าในรูปที่ 2 ด้วย Cartesian coordinate คือ (5,4)

  1. 5 หมายถึงระยะห่างจาก Y-axis ไปทางขวามือ 5 หน่วย

  2. 4 หมายถึงระยะห่างจาก X axis ขึ้นไปข้างบน 4 หน่วย


รูปที่ 2


3D Cartesian coordinates


ที่กล่าวมาเป็นระบบ Cartesian coordinate ใช้ 2 แกนในการบอกตำแหน่งเป็นการรับทราบในแบบ 2 มิติ (2-dimension,2D) ในการมองแบบ 3 มิติ (3-dimension,3D) ต้องเพิ่มแกนเข้ามาอีก 1 แกนที่ตั้งฉากกับ X-Y plane (ในรูปที่ 2 แสดงด้วย plane สีฟ้า) ซึ่งจะตั้งฉากกับทั้งแกน X และ Y เรียกว่าแกน Z (Z axis) (ดูรูปที่ 3) ในการระบุตำแหน่งใช้ตัวเลข 3 ตัวในรูปแบบ (x,y,z) โดยที่ตัวเลขที่ 3 คือระยะห่างจาก X-Y plane ของวัตถุ


รูปที่ 3

พื้นที่ว่าง (space) ในมุมมองแบบ 3D จะถูกแบ่งออกเป็น 8 ส่วน (octant) ดังรูปที่ 4 โดยแต่ละส่วนมีระบบจำนวนที่ใช้บอกตำแหน่งดังนี้


ตารางที่ 1
Octant(x,y,z)
1(+,+,+)
2(-,+,+)
3(-,-,+)
4(+,-,+)
5(+,+,-)
6(-,+,-)
7(-,-,-)
8(+,-,-)


รูปที่ 4

พื้นที่ว่างใน 3D การหมุนของแกนทั้ง 3 เป็นอิสระ ดังนั้นเพื่อให้เกิดความเข้าใจตรงกันในการกำหนดทิศ จึงมีการกำหนด left hand rule และ righ hand rule ขึ้นมา ดังนี้

  ♦ กรณีใช้ Left hand rule : หงายฝ่ามือซ้ายขึ้น กางนิ้งโป้งออกให้ตั้งฉากกับฝ่ามือ ทิศที่นิ้วโป้งชี้จะเป็นทิศของ Z+ ทิศที่นิ้วชี้ชี้ไปจะเป็นทิศของ X+ ยกนิ้วกลางขึ้นให้ตั้งฉากกับฝ่ามือ ทิศที่นิ้วกลางชี้ไปเป็นทิศของ Y+ (หรืออาจใช้ทิศของฝ่ามือก็ได้)

  ♦ กรณีใช้ Right hand rule : เปลี่ยนไปใช้มือขวาแล้วทำเช่นเดียวกับ left hand rule จะได้ว่าทิศของนิ้วโป้งคือ Z+ ทิศของนิ้วชี้คือทิศของ X+ และฝ่ามือคือทิศของ Y+


รูปที่ 5

Polar coordinates


ระบบ polar coordinate เป็นการระบุตำแหน่งในมุมมอง 2D โดยใช้จุดอ้างอิงที่เทียบได้กับจุด origin ในระบบ cartesian เรียกว่า (Pole) ตำแหน่งของวัตถุระบุด้วยตัวเลข 2 ตัว (r,θ) (บางคนอาจใช้ ρ แทน r) โดย r คือระยะห่างระหว่าง pole กับวัตถุ และ θ คือมุมที่วัดจากแกน polar axis ไปยังวัตถุ ไม่ได้มีการระบุว่า polar axis ต้องชี้ไปทางไหนแต่มักจะถูกกำหนดให้เป็นแกนเดียวกันกับ X+ axis ในระบบ cartesian coordinates


รูปที่ 6

การวัดค่าของ θ จะเริ่มต้นจาก polar axis (แนวเดียวกับแกน X+) โดยที่อาจมีเครื่องหมายลบ(-)หรือไม่ก็ได้ ในกรณีที่มีเครื่องหมายลบหมายถึงการวัดมุมในทิศตามเข็มนาฬิกา (clockwise) หากไม่มีเครื่องหมายลบจะเป็นวัดในทิศทางทวนเข็มนาฬิกา (counterclockwise)


รูปที่ 7

ระบบ polar coordinates มีการแบ่งพื้นที่ออกเป็นตาราง (grid) เพื่อใช้ระบุ coordinate เช่นเดียวกับ cartesian coordinates แต่อยู่ในรูปแบบของมุมและระยะทาง ดังรูปที่ 8 เช่นจุดสีแดง ตั้งอยู่บน coordinate ที่ (6,45) หมายถึง จุดสีแดงอยู่ห่างจากจุด pole (origin) ไปทางขวา 6 หน่วย ทำมุม 45 กับ polar axis

รูปที่ 8

การเทียบ θ กับ quadrant :

ระบบ polar coordinates ไม่มีการแบ่งพื้นที่เป็น quadrant เพราะมีแกนเดียว การเทียบเป็น quadrant ต้องใช้ค่าของ θ ดังแสดงในรูปที่ 9


รูปที่ 9

การแปลง (r,θ) ไปเป็น coordinate (x,y) :

จะใช้การคำนวณจาก trigonometry เพื่อคำนวณหาจุดที่ r ฉายลงบนแกน X และแกน Y ถ้าให้จุดสีแดงในรูปที่ 10 มี coordinate เป็น (r,θ)

รูปที่ 10

จะได้ว่า

sin(θ)=yrrsin(θ)=ycos(θ)=xrrcos(θ)=x

การแปลงจาก polar coordinate ไปยัง cartesian coordinate จะใช้สมการ

(1.0)(x,y)=(rcos(θ),rsin(θ))

(1.0) ใช้ได้เมื่อ θ มีค่าระหว่ง [0,90 ] หรือ quadrant ที่ 1 ในกรณีที่ θ ไม่ได้อยู่ในช่วงนี้ จะต้องทำการปรับค่าของมุมให้เหมาะสมดังนี้

ค่าของ θค่าของ (x,y)
(0,90 ] x=rcos(θ)y=rsin(θ)
(90,180 ] x=rcos(180θ)y=rsin(180θ)
(180,270 ] x=rcos(θ180)y=rsin(θ180)
(270,360 ] x=rcos(360θ)y=rsin(360θ)

การแปลงจาก (x,y) ไปเป็น (r,θ) :

ใช้ Pythagoras theorem มาแปลงค่าของ x,y ไปเป็นค่า r จากรูปที่ 10 จะได้

r2=x2+y2(1.1)r=x2+y2

จากตอนก่อนหน้า เราทราบว่าง

yx=rsin(θ)rcos(θ)yx=tan(θ)(1.2)θ=tan1(θ)

นั่นคือ (x,y) (x2+y2,tan1(θ))

ความคิดเห็น