2016-03-23 23 views
-2

üzerinde elemanlarının değişken sayısını konumlandırmak için ben http://creative-punch.net/2014/02/making-animated-radial-menu-css3-javascript/nasıl yarı çember

Benim matematik sadece dairenin üst yarısında öğeleri dağıtmak için değiştirmesi çok kötü bu müthiş daire menüyü gördük.

Ayrıca, göreli konumunun% konumlarından kurtulmak ve öğelerin piksel olarak önceden tanımlanmış bir mesafeyi yaymasına izin vermek istiyorum. Artık hiçbir menü sınırlama kutusu gerekli değildir.

+0

Simetrik olarak bunları dağıtmak mı istiyorsunuz yoksa sadece bir köşeden mi başlamak istiyorsunuz? –

+0

Simetrik, sadece örnekte olduğu gibi, ancak;) – philk

cevap

0
dtheta = dist/rad; 
num = Math.floor(PI/dtheta); 
theta = (PI - num * dtheta)/2; 

for (var i = 0; i < num; i++) 
{ 
    x = center_x + rad * cos(theta); 
    y = center_y + rad * sin(theta); 
    theta += dtheta; 
    //drawelement(elements[i], x, y); 
} 
  • dist: menü öğeleri arasındaki piksel mesafe
  • elements: Menü elemanlarının listesi
  • rad: dairenin yarıçapı
  • center_x, center_y: merkezi
  • koordinatları
  • num: azami sayısı elemanlar çekilebilir

N.B. drawelement'a gönderilen koordinatlar, her menü öğesinin merkez'unun sol üst köşesi değillerdir.

+0

Teşekkürler. Bu, http://codepen.io/CreativePunch/pen/lAHiu – philk

+0

@philik'te sunulan mizanpaja tam uymuyor mu? –

+0

de orijinal kod, öğeleri konteynerinde konumlandırmak için yüzde kullanır. – philk

İlgili konular