วิธีการคำนวณรัศมี (รัศมี) ของมุมสำหรับ rects โค้งมนศูนย์กลาง


9

ฉันมีปุ่มแก้ไขที่ฉันต้องการให้อยู่ในอีกอัน Roundrect ที่มีอยู่ควรอยู่ห่างจากปุ่ม 1px เสมอ

ถ้าฉันทำให้รัศมีบนภาชนะเล็กเกินไปมุมก็จะมีช่องว่างรอบ ๆ

มี "กฎแห่งหัวแม่มือ" ที่ดีหรือไม่ที่ฉันสามารถใช้เพื่อหาว่ารัศมีควรจะเป็นรูปทรงกลมขนาดใหญ่หรือไม่?

คำตอบ:


12

หากคุณต้องการให้วงเวียนด้านนอกอยู่ห่างจากด้านใน 1px รัศมีของมุมด้านนอกควรมีขนาดใหญ่กว่ามุมด้านในของ 1px

นี่คือแผนภาพด่วนที่อาจช่วยให้คุณเห็นวิธีการทำงาน:
แผนภาพรัศมีมุม
สี่เหลี่ยมผืนผ้าด้านในมีรัศมีมุมของพิกเซลr ; มุมดังนี้ส่วนโค้งของวงกลมสีแดงด้านในซึ่งมีรัศมีเป็นRพิกเซลและศูนย์ตามลําดับrพิกเซลห่างจากด้านข้างของสี่เหลี่ยมผืนผ้า

สี่เหลี่ยมผืนผ้าด้านนอกมีรัศมีมุมของr +1 พิกเซล; มุมของมันจะเป็นไปตามส่วนโค้งของวงกลมสีแดงด้านนอกซึ่งมีรัศมีr +1 พิกเซลและศูนย์กลางอยู่ที่เท่ากันr +1 พิกเซลห่างจากด้านข้างของสี่เหลี่ยมผืนผ้า เนื่องจากสี่เหลี่ยมผืนผ้าด้านนอกนั้นเลื่อนขึ้นหนึ่งพิกเซลขึ้นไปและทางด้านขวาของด้านใน (และเราอาจเข้าใจว่าเป็นสองพิกเซลที่กว้างขึ้นและสูงขึ้นเพื่อชดเชย) วงกลมสองวงนั้นมีศูนย์กลางและระยะห่างระหว่างพวกเขาเป็นหนึ่งพิกเซลเสมอ


ฉันดีใจที่คำตอบนั้นง่ายมาก!
Mike Brand

ฉันลองสร้างมันใหม่โดยการเปรียบเทียบรูปสี่เหลี่ยมมุมฉากกับเส้นขอบภายนอกที่ 50 px และสี่เหลี่ยมมุมฉากใหม่ (กว้าง 50px และสูงกว่า) กับรัศมีที่สูงกว่า 50px พวกเขาไม่ตรงกัน แต่ตอนนี้ฉันคิดว่าส่วนใหญ่เป็นเรื่องแปลกของการแสดงภาพร่างของ Photoshop ขอบคุณสำหรับคำตอบของคุณ!
Mike Brand

@ ไมค์: จำไว้ว่าต้องเพิ่มระยะทางในทั้งสองด้านของสี่เหลี่ยมผืนผ้า ดังนั้นหากคุณต้องการให้สี่เหลี่ยมด้านนอกเป็น 50 px จากด้านในคุณต้องทำให้สี่เหลี่ยมด้านนอกกว้างขึ้น 100 px และสูงกว่าขอบด้านใน (และเพิ่มรัศมีมุมขึ้น 50 px)
Ilmari Karonen

6

ถ้าคุณต้องการให้มุมมีศูนย์กลางที่ใช้ร่วมกันรัศมีมุมด้านนอกของรูปร่างควรเป็นรัศมีมุมของรูปร่างภายในบวกกับระยะห่างระหว่างรูปร่าง หากรูปร่างด้านในของคุณมีรัศมีมุมโค้งมน 5 พิกเซลและรูปร่างด้านนอกของคุณอยู่ห่างออกไป 1 พิกเซลรัศมีมุมของรูปร่างด้านนอกควรเป็น 6 พิกเซล (ไม่ใช่การบัญชีสำหรับน้ำหนักเส้นขีดใด ๆ )

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.