संपादित करें: नीचे दिया गया समाधान केवल ज्यामितीय दृष्टिकोण से लागू होता है। स्क्रीन पर चित्रण सैद्धांतिक ज्यामिति से अलग है, आपको ब्रेसनहम के एल्गोरिदम का सुझाव देने वाले लोगों को सुनना चाहिए।
को देखते हुए, दो अंक है, और जानते हुए भी कि लाइन के समीकरण y = m*x + b
, जहां m
ढलान और b
अवरोध पैदा करते हैं आप m
और b
गणना और फिर एक्स अक्ष के सभी मूल्यों के लिए आवेदन कर सकते हैं समीकरण है आपके ए और बी बिंदुओं के बीच:
var A = [10, 5];
var B = [15, 90];
function slope(a, b) {
if (a[0] == b[0]) {
return null;
}
return (b[1] - a[1])/(b[0] - a[0]);
}
function intercept(point, slope) {
if (slope === null) {
// vertical line
return point[0];
}
return point[1] - slope * point[0];
}
var m = slope(A, B);
var b = intercept(A, m);
var coordinates = [];
for (var x = A[0]; x <= B[0]; x++) {
var y = m * x + b;
coordinates.push([x, y]);
}
console.log(coordinates); // [[10, 5], [11, 22], [12, 39], [13, 56], [14, 73], [15, 90]]
स्रोत
2012-11-21 11:04:41
कुछ समय पहले वे मुझे स्कूल में साइन, कोसाइन और टैंजेंट के बारे में सिखाते थे। http://www.mathsisfun.com/sine-cosine-tangent.html –
डुपे - देखें: http://stackoverflow.com/questions/4672279/bresenham-algorithm-in-javascript –
आप http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm – Alnitak