2016-04-02 17 views
1

hattının uzunluğu boyunca ileri geri hareket etmesi için elipse ihtiyacım var Kod, processing.js kitaplığını kullanarak bir proje için yazdığım programın bir pasajıdır. Hat üzerinde ortalanmışken, diyagonal çizginin tüm uzunluğu boyunca hareket etmek için elipse ihtiyacım var. Tamamlandığında, ileri ve geri kayma elips ile toplam sekiz satır olacaktır. Bu beşinci sırada. Kürenin köşegen aşağı doğru hareket etmesini sağlamak için özel bir hız değişkeni yaratmam gerektiğini fark edeceksiniz (koddaki diğer iki çapraz çizgi bu olmadan çalışır).Ortaya kalması ve

Grafikteki tüm diğer çizgiler üzerinde çalışır. Bu mükemmel bir şekilde aşağı iner, sonra yukarı doğru "off-track" yapar; zirveye ulaştığında, sadece garip (rasgele) bir şekilde seker. Temel formatı değiştirmeden tamir edebilir miyim? Teşekkür ederim!

var x5 = 113; 
var y5 = 27; 
var speed5 = 1; 
var speed5y = speed5 * 2; 

draw = function() { 
    //lineBallFive 
    line(100, 1, 300, 400); 
     fill(0, 225, 255); 
     ellipse(x5, y5, ballSize, ballSize); 
     if (x5 > 300) { 
      speed5 = -3; 
     } 
     if (x5 < 100) { 
      speed5 = 3; 
     } 
     if (y5 > 400) { 
      speed5y = 2 * -3; 
     } 
     if (y5 < 1) { 
      speed5y = 3; 
     } 
     } 

cevap

1

yerine kendisine elips göre hareket ettirmek yerine, doğrusal interpolasyon kullanarak elips taşımak için lerp() işlevini kullanabilirsiniz. Bu, satırlarınızı senkronize etmeyi çok daha kolaylaştıracaktır. Bana yardım etmeye çalıştığın için

var amount = 0; 
var speed = .001; 

function setup() { 
    size(500, 500); 
} 

void draw() { 

    var startX = 0; 
    var startY = 0; 
    var endX = width; 
    var endY = height; 
    var currentX = lerp(startX, endX, amount); 
    var currentY = lerp(startY, endY, amount); 

    background(0); 
    ellipse(currentX, currentY, 20, 20); 

    amount += speed; 

} 
+0

Teşekkür:

İşte küçük bir örnek. Kodumu kullanarak benim sorunum için bir çözüm üzerinde çalışıyorum. Nasıl olduğunu bilmeni sağlayacağım. Tekrar teşekkürler! – javaDrinker

+0

@javaDrinker Bunu hiç halledin mi? –