Eşmerkezli yuvarlak doğrultular için köşe yarıçapları (yarıçapları) nasıl hesaplanır


9

Başka bir roundrect içerisine dahil etmek istediğim bir roundrect düğmem var. İçeren yuvarlak düzeltme düğmesinden her zaman 1 piksel uzakta olmalıdır.

Konteyner üzerindeki yarıçapı çok küçük yaparsam, köşelerin etrafında daha büyük bir boşluk vardır.

Daha büyük yuvarlak doğru için yarıçapın ne olması gerektiğini anlamak için kullanabileceğim iyi bir "başparmak kuralı" var mı?

Yanıtlar:


12

Dış yuvarlak düzeltmenin iç köşeden 1 piksel uzakta olmasını istiyorsanız, dış dikdörtgenin köşe yarıçapının da iç köşeden 1 piksel daha büyük olması gerekir.

İşte nasıl çalıştığını görmenize yardımcı olabilecek hızlı bir diyagram:
Köşe yarıçap diyagramı
İç dikdörtgenin köşe pikseli r pikseldir; köşesi, r piksel yarıçapına sahip iç kırmızı dairenin arkını ve merkezi , dikdörtgenin kenarlarından karşılık gelen r pikselleri takip eder.

Dış dikdörtgenin köşe yarıçapı r +1 pikseldir; köşesi, r + 1 piksel yarıçapına sahip olan dış kırmızı dairenin yayını izler ve merkezi , dikdörtgenin kenarlarından karşılık olarak r + 1 piksel uzaktadır. Dış dikdörtgen de bir piksel yukarı ve iç sağa kaydırıldığı için (ve tahmin edebileceğimiz, iki piksel daha geniş ve telafi etmek için daha uzun), iki daire eşmerkezlidir ve aralarındaki mesafe her zaman bir pikseldir.


Cevabın bu kadar kolay olduğuna sevindim!
Mike Brand

Bir yuvarlak rektifi 50 piksellik bir dış kenarlıkla ve yeni (50 piksel daha geniş ve daha uzun) yuvarlak bir rektubu 50 piksel daha yüksek bir yarıçapla karşılaştırarak yeniden yaratmayı denemiştim. Tam olarak eşleşmediler, ancak şimdi bunun Photoshop'un anahat oluşturma işleminin bir tuhaflığı olduğunu düşünüyorum. Cevabınız için teşekkürler!
Mike Brand

@Mike: Dikdörtgenin her iki tarafına da mesafenin eklenmesi gerektiğini unutmayın. Bu nedenle, dış dikdörtgen kenarlığının içten 50 piksel olmasını istiyorsanız, dış dikdörtgeni iç pikselden 100 piksel daha geniş ve daha uzun yapmanız (ve köşe yarıçapını 50 piksel artırmanız) gerekir.
Ilmari Karonen

6

Köşelerin paylaşılan merkezlere sahip olmasını istiyorsanız, dış şeklin köşe yarıçapı iç şeklin köşe yarıçapı artı şekiller arasındaki mesafe olmalıdır. İç şeklinizde yuvarlak 5 piksel köşe yarıçapı varsa ve dış şekliniz 1 piksel uzaklıkta ise, dış şeklin köşe yarıçapı 6 piksel olmalıdır. (Strok ağırlıklarını hesaba katmamak.)

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.