quadraticCurveTo
ड्रॉ एक quadratic Bézier curve: और यहाँ इस विषय पर एक अच्छा ट्यूटोरियल, चित्र के साथ पूरा हो गया है।
वक्र पर सूत्रों किसी भी स्थिति (0 से 1 तक) पर एक बिंदु के निर्देशांक की गणना करने के
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
जहां (x1, y1) है प्रारंभिक बिंदु, (x2, y2) नियंत्रण बिंदु है और (x3, y3) अंत बिंदु है।
तो, जावास्क्रिप्ट में तब्दील हो कि, हम
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)
};
}
आप, वहाँ getQuadraticCurvePoint
शुरू, अंत और नियंत्रण अंक पारित आधे रास्ते पद के लिए 0.5
के साथ-साथ हैं की तरह कुछ के साथ खत्म, आप एक मिलना चाहिए एक्स और वाई निर्देशांक के साथ वस्तु।
अस्वीकरण - मैंने कोड का परीक्षण नहीं किया है, इसलिए आपका माइलेज भिन्न हो सकता है, लेकिन यह सही लगता है। ;)
संपादित करें: मैंने यहां एक कोड में कोड का परीक्षण किया। http://jsfiddle.net/QA6VG/
कृपया बताएं कि आप "नियंत्रण बिंदु" और "शुरू करने" और "अंत" अंकों की क्या मतलब है। –
नियंत्रण बिंदु एक बिंदु है जो वक्र आकार के लिए ज़िम्मेदार है, प्रारंभ बिंदु वह बिंदु है जहां वक्र शुरू होता है और अंत पॉट वह होता है जहां वक्र समाप्त होता है। –
वक्र के आकार के लिए कोई एकल बिंदु ज़िम्मेदार नहीं हो सकता है - वक्र का आकार सामान्य रूप में लिखे जाने पर ए, बी, सी के मानों द्वारा परिभाषित किया जाता है। आपके शुरुआती और समापन बिंदु - क्या वे क्षैतिज एक दूसरे के साथ स्तर हैं? क्या आपके पास एक समीकरण है जिसे आप साजिश कर रहे हैं? –