2012-09-24 16 views
7

D3 kütüphanesi ile fiziksel yerçekimi simülasyonunu tasarlamaya çalışıyorum ama çok fazla şansım yok. 'layout' API reference, fiziksel yer çekiminin pozitif 'şarj' parametresiyle uygulanabileceğini belirtiyor, ancak bunun nasıl işe yaracağına emin değilim.D3 fiziksel yerçekimi

Şu anda uygulamaya çalıştığım şey, görünüm noktasından çıkan farklı hızlarda yükselen birden fazla değişken ağırlıklı ve boyutlandırılmış rekt içeren tek bir SVG öğesidir - ağırlıkları, hızlarını yükselir. (Temel olarak, yalnızca görünümün üst kısmının ötesinden küresel bir çekim çekimi gerçekleştirmeye çalışıyorum.)

Bunu, D3 kuvvet düzenine göre yapmanın mümkün bir yolu var mı? Ben sadece kavramsal çözümler arıyorum, ancak örnekler ve kod parçacıkları da takdir edilmektedir.

Şimdiden teşekkürler! İşte

+0

tek SVG elemanı bir görüntü var mı? –

cevap

3

birkaç fikir geçerli:

  1. doğrudan kene olay işleyicisi düğümün dikey konumunu değiştirebilirsiniz:

    force.on("tick", function(e) { 
        nodes.forEach(function(o, i) { 
         o.y -= o.weight/30; 
        }); 
    
        node.attr("cx", function(d) { return d.x; }) 
         .attr("cy", function(d) { return d.y; }); 
    }); 
    

    Sen (0) Bu yaklaşım için force.gavity ayarlamanız gerekir.

  2. Yoksa force.gravity kullanabilirsiniz: o düzen merkezine doğru düğümleri çeker, sen viewport yukarıdaki düzen merkezini kaydırmaya svg DÖNÜŞÜMLERİ belirtebilirsiniz