quadraticCurveTo
bir quadratic Bézier curve çizer: Burada Ve şemalar ile tam konuda iyi bir öğretici olduğunu. eğrisine (0 ile 1 arasında) belirli bir pozisyonda bir noktaya hesaplayabilmesi için
formüller başlangıç noktası, (x2, y2) (x1, y1) olan
x(t) = (1-t)^2 * x1 + 2 * (1-t) * t * x2 + t^2 * x3
y(t) = (1-t)^2 * y1 + 2 * (1-t) * t * y2 + t^2 * y3
olan kontrol noktası ve (x3, y3) bitiş noktasıdır.
Yani, JavaScript içine dönüm, biz
function _getQBezierValue(t, p1, p2, p3) {
var iT = 1 - t;
return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;
}
function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {
return {
x: _getQBezierValue(position, startX, cpX, endX),
y: _getQBezierValue(position, startY, cpY, endY)
};
}
yarıya kadar pozisyon için 0.5
birlikte orada getQuadraticCurvePoint
başlangıç, bitiş ve kontrol noktalarını geçerseniz gibi bir şey ile bitirmek, bir almalısınız X ve Y koordinatları ile nesne.
Yasal Uyarı - Kodu test etmedim, bu nedenle kilometreleriniz değişebilir, ancak , sağ görünüyor. ;)
DÜZENLEME: Kodu bir jsfiddle olarak test ettim. http://jsfiddle.net/QA6VG/
Eğer "kontrol noktası" ve "başlangıç" ve "bitiş" puan ne anlama geldiğini açıklayınız. –
Kontrol noktası, eğri şeklinden sorumlu olan bir noktadır, başlangıç noktası eğrinin başladığı noktadır ve bitiş noktası eğrinin bittiği noktadır. –
Eğrinin şeklinden tek bir nokta sorumlu olamaz - eğrinin şekli genel formda yazıldığında a, b, c değerleri ile tanımlanır. Başlangıç ve bitiş noktalarınız - yatay olarak birbirleriyle aynı mı? Çizdiğin bir denklem var mı? –