ได้รับเพียงระนาบและเข็มทิศให้เขียนสี่เหลี่ยมขนมเปียกปูนภายในสี่เหลี่ยมที่กำหนดแบ่งปันสองจุดที่ตรงกันข้าม
อินพุต
อินพุตคือขนาดของสี่เหลี่ยมผืนผ้า 125, 50
ในตัวอย่างที่แสดงว่าจะ คุณสามารถป้อนข้อมูลด้วยวิธีใดก็ได้ที่สะดวกที่สุด (เป็นจำนวนเต็มสองรายการรายการสตริง ฯลฯ )
มิติที่ใหญ่กว่าจะเป็น 100 ขั้นต่ำในขณะที่ขนาดเล็กกว่าจะน้อยกว่า 25 ทั้งสองขีดที่ 200
เอาท์พุต
เอาท์พุทจะเป็นภาพ (แสดงบนหน้าจอหรือบันทึกเป็นไฟล์) แสดง
- สี่เหลี่ยมอินพุต
- เส้น / แวดวง "ที่ทำงาน" ทั้งหมด
- รูปสี่เหลี่ยมขนมเปียกปูนที่จารึกไว้
ในสีที่แตกต่าง ในภาพด้านบนสี่เหลี่ยมผืนผ้าเป็นสีดำสีน้ำเงินทำงานและส้มรูปสี่เหลี่ยมขนมเปียกปูน ควรวาดเส้นตามลำดับที่แสดงในรายการ (เช่นรูปสี่เหลี่ยมขนมเปียกปูนเขียนทับเส้นทำงานและสี่เหลี่ยม)
ภาพที่ส่งออกจะต้องมีขนาดใหญ่พอที่จะมีทุกอย่าง ตัวอย่างเช่นวงกลมที่แสดงไม่สามารถออกนอกขอบเขตได้
วิธี
วิธีที่ใช้ในภาพตัวอย่างด้านบนคือ:
- วาดวงกลมโดยใช้มุมซ้ายล่างเป็นจุดศูนย์กลางและด้านบนขวาเป็นจุดบนเส้นรอบวงทำให้รัศมีเท่ากับเส้นทแยงมุมของสี่เหลี่ยมผืนผ้า
- ทำเช่นเดียวกัน แต่สลับจุดกึ่งกลางและเส้นรอบวง
- ลากเส้นระหว่างจุดตัดของวงกลมทั้งสองให้เส้นแบ่งครึ่งตั้งฉากกับเส้นทแยงมุมของสี่เหลี่ยมผืนผ้า
- ใช้ทางแยกของบรรทัดใหม่และสี่เหลี่ยมผืนผ้าเพื่อวาดรูปสี่เหลี่ยมขนมเปียกปูน
มันใช้งานได้เพราะเส้นทแยงมุมภายในของรูปสี่เหลี่ยมขนมเปียกปูนมักตั้งฉากกับกันและกัน แต่ฉันไม่ได้รวมหลักฐานทั้งหมดของเรื่องนี้ไว้ที่นี่
นี่ไม่ใช่วิธีเดียวที่จะได้รับรูปสี่เหลี่ยมขนมเปียกปูนของคุณและคุณสามารถใช้วิธีอื่นได้เนื่องจากคุณจะอธิบายสิ่งที่คุณกำลังทำ ฉันเชื่อว่าอาจเป็นวิธีที่ง่ายที่สุด
กฎระเบียบ
คุณสามารถวาดวงกลมและเส้นเท่านั้น (หรือมากกว่านั้นคือส่วนของเส้น) วงกลมถูกกำหนดด้วยจุดกึ่งกลางและจุดรอบนอก เส้นถูกกำหนดโดยจุดสองจุดใด ๆ เส้นไม่จำเป็นต้องมีความยาวที่ระบุ แต่อย่างน้อยต้องครอบคลุมจุดที่กำหนด (สังเกตภาพตัวอย่าง: เส้นจะผ่านไปเล็กน้อยที่จุดตัดของวงกลม แต่ไม่ถึงขอบ) สำหรับแวดวงรัศมีจากกึ่งกลางถึงจุดที่กำหนดนั้นถือว่าเป็นสายการทำงานและจะต้องแสดง
ในการ rasterize บรรทัดคุณสามารถใช้อัลกอริทึมที่รู้จักใด ๆ (เช่น Bresenham) หรือพึ่งพาสิ่งที่มีอยู่ในภาษาของคุณ หากผลลัพธ์ของคุณเป็นแบบเวกเตอร์โปรดตรวจสอบให้แน่ใจว่ามีความละเอียดอย่างน้อยใหญ่เท่ากับสี่เหลี่ยมอินพุตเป็นพิกเซล นอกจากนี้คุณจะวาดบนผืนผ้าใบธรรมดาดังนั้นโปรดกำจัดเครื่องหมายกริดหรือเอาท์พุทภายนอก
ไม่มีการโกง! คุณสามารถกำหนดตำแหน่งของจุด / บรรทัด / วงกลมโดยใช้สิ่งที่คุณได้สร้างไว้แล้วเท่านั้น หากคุณไม่สามารถอธิบายวิธีใช้เส้น / วงกลมที่ทำงานเพื่อแสดงว่าเป็นรูปสี่เหลี่ยมขนมเปียกปูนแสดงว่าคุณทำผิด
คุณสามารถใช้จุดตรงข้ามคู่ใดก็ได้ที่คุณต้องการและสี่เหลี่ยมไม่จำเป็นต้องวาดให้อยู่ในแนวแกนตราบใดที่เอาต์พุตถูกต้อง
อินพุตจะเป็นรูปสี่เหลี่ยมผืนผ้าที่ไม่ได้เป็นรูปสี่เหลี่ยมเสมอดังนั้นไม่ต้องกังวลกับเคสพิเศษ
สุดท้ายนี้คือรหัสกอล์ฟมาตรฐานดังนั้นขนาดที่ต่ำที่สุดในหน่วยไบต์ชนะ