JavaScript-এ লাইন সেগমেন্টের দৈর্ঘ্য এবং পয়েন্ট সংখ্যা দিয়ে সমান দূরত্বে (equidistant) পয়েন্টের অ্যারে জেনারেট করা যায়। এটি গ্রাফিক্স, অ্যানিমেশন, বা ডেটা ভিজ্যুয়ালাইজেশনে কাজে লাগে।
অ্যালগরিদম
স্ট্রাট পয়েন্ট (০) থেকে এন্ড পয়েন্ট (x) পর্যন্ত n সংখ্যক পয়েন্ট বাঁটতে হলে প্রতিটি পয়েন্টের অবস্থান:
position = (index + 1) / (n + 1) * length
ফাংশন উদাহরণ
function generateEquidistantPoints(count, length) {
const points = [];
for (let i = 0; i < count; i++) {
const ratio = (i + 1) / (count + 1);
const position = ratio * length;
points.push(Math.round(position)); // পূর্ণসংখ্যায় রাউন্ড
}
return points;
}
// ৫টি পয়েন্ট, দৈর্ঘ্য ৫০
const points = generateEquidistantPoints(5, 50);
console.log("পয়েন্টগুলো:", points);
চলানোর পদ্ধতি
- কোডটি
pointsDemo.jsনামে সংরক্ষণ করুন। - টার্মিনালে চালান:
node pointsDemo.js
আউটপুট
পয়েন্টগুলো: [ 8, 17, 25, 33, 42 ]
গণনা ব্যাখ্যা
| ইনডেক্স | অনুপাত (i+1)/(n+1) | পজিশন (×50) | রাউন্ডেড |
|---|---|---|---|
| 0 | 1/6 = 0.166... | 8.33... | 8 |
| 1 | 2/6 = 0.333... | 16.66... | 17 |
| 2 | 3/6 = 0.5 | 25 | 25 |
| 3 | 4/6 = 0.666... | 33.33... | 33 |
| 4 | 5/6 = 0.833... | 41.66... | 42 |
উন্নত সংস্করণ (ফ্লোট রিটার্ন)
function generatePointsPrecise(count, length, decimals = 2) {
const factor = Math.pow(10, decimals);
return Array.from({ length: count }, (_, i) =>
Math.round(((i + 1) / (count + 1)) * length * factor) / factor
);
}
console.log(generatePointsPrecise(5, 50, 2));
// [ 8.33, 16.67, 25, 33.33, 41.67 ]