ไม่ใช่ว่ามันไม่เข้าท่า แต่มันก็ใช้งานได้อย่างน่าอึดอัดใจ 99% ของเวลา
บ่อยครั้งในสี่เหลี่ยมกราฟิกสองมิติจะเริ่มต้นจัดเก็บและจัดการเป็นจุดคู่ ในภาษาใดไม่มี
class Rect:
p1, p2: point
มันสมเหตุสมผลกว่าที่จะกำหนดรูปสี่เหลี่ยมผืนผ้าเป็นค่า x สองค่าและค่า y สองค่าดังนี้:
class Rect
xleft, xright: int
ytop, ybottom: int
ด้วยจุดสองจุดหากบางจุดในซอร์สโค้ดคุณต้องการใช้ประโยชน์จากค่า y ของอันดับต้นสุดคุณต้องบอกว่า rect.p1.y (hmmm หยุดและคิดว่ามันคือ p1 หรือ p2) แต่ ด้วยค่าสี่ค่าในฐานะสมาชิกข้อมูลธรรมดามันชัดเจนและตรงไปตรงมา: rect.ytop (ไม่ต้องคิด!) การใช้สองจุดหมายความว่าในการจัดการกับแนวตั้งคุณต้องยุ่งเหยิงในแนวนอน มีความสัมพันธ์ภายนอกระหว่างองค์ประกอบอิสระ
แนวคิดสองจุดนี้เกิดขึ้นได้อย่างไรและทำไมมันถึงยังคงอยู่? มันมีประโยชน์มากกว่าพิกัด x และ y ที่เปลือยเปล่าหรือไม่?
เพิ่มหมายเหตุ: คำถามนี้อยู่ในบริบทของรูปสี่เหลี่ยมชิด XY เช่นในตัวจัดการ windows และชุดเครื่องมือ GUI ไม่ใช่ในบริบทของรูปร่างที่กำหนดเองในแอพการวาดและการวาดภาพ