DDA এবং Bresenham এর অ্যালগরিদম মধ্যে পার্থক্য

Anonim

ডিজিটাল ডিফারেন্সিয়াল আলগোরিদিম (ডিডিএ) এবং Bresenhams এর অ্যালগরিদম ডিজিটাল লাইন অঙ্কন আলগোরিদিম হয় এবং ছবি গ্রাফিক্স কম্পিউটার গ্রাফিক্স ব্যবহার করা হয়। পূর্বে, আমরা পিক্সেল গণনা করতে বিশ্লেষণাত্মক বিশ্লেষক ব্যবহার করেছিলাম এবং সেইভাবে লাইন আঁকা সম্ভব হয়। কিন্তু এই বিশ্লেষণাত্মক পদ্ধতিগুলি ডিজিটাল পদ্ধতির মতো নির্ভুল নয় যেমন এই ডিজিটাল অ্যালগরিদমগুলি এবং প্রতিটি ক্ষেত্রের সাথে আমরা কম্পিউটার গ্রাফিক্সের উচ্চ মানের পদ্ধতিগুলিও আবিষ্কার করেছি। এই অ্যালগরিদম আবিষ্কার একটি নিখুঁত উদাহরণ। আমরা এগিয়ে যাওয়ার আগে, এই অ্যালগরিদমের পিছনে ধারণাটি দেখি। যদিও এটি আমাদের আলোচনার সুযোগের বাইরে রয়েছে, তবে এটির দুটি মৌলিক পার্থক্য নির্দেশ করা অপরিহার্য। যদি আপনি অ্যালগরিদমগুলির সাথে সত্যিই পরিচিত হন, তবে আপনি এই পৃষ্ঠার শেষে অবস্থিত প্রকৃত পার্থক্যগুলির কাছে যেতে পারেন।

ডিজিটাল ডিফারেনাল অ্যালগোরিদম (ডিডিএ) কি?

একটি ডিডিএ বেশিরভাগ কম্পিউটার গ্রাফিক্সে লাইন আঁকতে ব্যবহৃত হয় এবং পরবর্তী পিক্সেল মানগুলির পূর্বাভাসের সময় বাস্তব মান ব্যবহার করে। আসুন আমরা প্রাথমিক পিক্সেল মান (X0, Y0) (X0, Y0) এবং গন্তব্য পিক্সেল (X1, Y1) (X1, Y1) হিসাবে অনুমান করি। আমরা নীচের হিসাবে পরিচিত পিক্সেল মান (X0, Y0) (X0, Y0) থেকে গন্তব্য পিক্সেল মান গণনা করা শিখবো

  • DDA ব্যবহার করে গন্তব্য পয়েন্ট মান গণনা করা কীভাবে?
--২ ->

ধাপ -1: এখানে আমাদের ইনপুট রয়েছে (X0, Y0) (X0, Y0) এবং আমরা লাইনটি এক্স-অক্ষ বা y- অক্ষের সমান্তরাল কিনা তা চিহ্নিত করা উচিত । এটি খুঁজতে, এখন আমরা প্রাথমিক এবং গন্তব্য পিক্সেল মানগুলির মধ্যে পার্থক্যটি গণনা করি।

dx = X1 - X0

dy = Y1 - Y0

ধাপ -২: এখন, আমরা পার্থক্যটি চিহ্নিত করেছি এবং x- অক্ষ বরাবর আমরা রেখাটি আঁকতে পারি যদি 'dx' শূন্য হয় অন্যথায়, আমরা y- অক্ষ লাইন সমান্তরাল আঁকা উচিত। এখানে কম্পিউটার ভাষা শর্তাবলী প্রকৃত গণনা করা হয়।

যদি (পরম (dx)> পরম (ডি))

ধাপ = পরম (dx);

অন্য

ধাপ = নিখুঁত (ডি);

ধাপ -3: এখন, লাইনটি আঁকতে প্রকৃত 'x' কো-অর্ডিন বা 'y' স্থিতিঙ্কিত পিক্সেলের মানগুলি চিহ্নিত করার সময়।

এক্স বৃদ্ধি = dx / (ভাসা) পদক্ষেপ;

Y বৃদ্ধি = ডিই / (ভাসা) পদক্ষেপ;

ধাপ -4: আমরা গন্তব্য পিক্সেল পৌঁছানোর পর্যন্ত এটি গণনা করা হয়েছে। ডিডিএ অ্যালগরিদম রাউন্ড-অফ পিক্সেল ভ্যালুটি নিখুঁত পূর্ণসংখ্যা মান যখন গণনা করা হয়। এখানে আমরা এখন আলোচনা করেছেন কি কোড নমুনা।

জন্য (int v = 0; v

{

x = x + X বৃদ্ধি;

y = y + Y বৃদ্ধি;

পকেটিক্সেল (গোল (এক্স), গোল (y));

}

আমরা DDA ব্যবহার করে লাইন অঙ্কন করা হয় এবং এখন আমরা ব্রেসেনহ্যামের দিকে এগিয়ে যাই! 99%> ব্রেসেনহ্যামের এলগরিদম কি?

এটি একটি ডিজিটাল লাইন অঙ্কন আলগোরিদিম এবং 193২ সালে ব্রেসেনহাম দ্বারা উদ্ভাবিত হয় এবং একই কারণে এটি একই নামে পেয়েছে। এই অ্যালগরিদম আরো সঠিক এবং লাইন অঙ্কন করার সময় এটি পিক্সেল মান কম্পিউটিং এবং বিয়োগ এবং ছাড়াও ব্যবহৃত। বক্রেনহ্যামের অ্যালগরিদমের সঠিকতা নির্ভর করে কার্ভ এবং বৃত্তগুলিও আঁকড়ে ধরে। এই অ্যালগরিদম কিভাবে কাজ করে দেখা যাক।

ধাপ -1:

ব্রেসেনহামের অ্যালগরিদম প্রাথমিক পিক্সেল সমন্বয়কে (x a + 1 , y a ) হিসাবে ধরে নেয়। ধাপ ২:

এটি স্বয়ংক্রিয়ভাবে পরবর্তী পিক্সেল মানকে (x a + 1 , y a + 1 ) হিসাবে গণনা করে, এখানে 'a' হল ক্রমবর্ধমান মান এবং অ্যালগরিদম এটি গঠিত হয়েছিল যে সমীকরণ যোগ বা বিয়োগ করে এটি computes। এই অ্যালগরিদম কোন বৃত্তাকার বন্ধ সঙ্গে সঠিক মান গণনা এবং পাশাপাশি সহজ দেখায়!

ব্রেসেনহামের অ্যালগরিদমের সংখ্যাসূচক উদাহরণ:

  • এখন আমরা (0, 0) এবং (-8, -4) পয়েন্টগুলি বিবেচনা করি এবং আমাদের ব্রেসেনহ্যামের অ্যালগরিদম ব্যবহার করে এই পয়েন্টগুলির মধ্যবর্তী একটি রেখা আঁক করি।

প্রদত্ত তথ্য, (x1, y1) = (0, 0) এবং (x2, y2) = (-8, -4)।

এখন নীচের মানের মানগুলি গণনা করা যাক।

Δx = x2-x1 = -8-0 = 8

অতএব, x = Δx / x2 = 8 / -8 = -1 এর ক্রমবর্ধমান মান।

Δy = y2-y1 = -4-0 = 4

অতএব, y = Δy / y2 = 4 / -4 = -1 এর ক্রমবর্ধমান মান

সিদ্ধান্ত পরিবর্তন = ই = 2 * (Δy) - (Δx)

অতএব, ই = 2 * (4) - (8) = 8-8 = 0

উপরে গণনা দিয়ে, আসুন আমাদের ফলশ্রুতিগুলির মূল্যবোধগুলি তফাত করুন Y- সমন্বয় মান একটি সিদ্ধান্ত পরিবর্তনশীল উপর ভিত্তি করে সমন্বয় করা হয় এবং আমরা এখানে এখানে তার কম্পানির উপেক্ষা করা হয়।

পিক্সেল

এক্স y ডিসিশন ভেরিয়েবল (0, 0)
0 0 0 (- 1, 0)
- 1 0 একটি মান (- 2, -1)
-2 -1 0 (- 3, -1)
-3 < -1 একটি মান (- 4, -2) -4
-2 0 (- 5, -2) -5 > ২
একটি মান (- 6, -3) -6 -3
0 (- 7, -3) -7 -3
একটি মান (- 8, -4) -8 -4
0 ডিডিএ এবং ব্রেসেনহাম এর অ্যালগরিদম মধ্যে পার্থক্য : গণিত হিসাব:

ফ্লোটিং পয়েন্ট ব্যবহার করে ডিডিএ তার গণনার মধ্যে বাস্তব মান ব্যবহার করে। পরবর্তী পিক্সেল বা বিন্দু মানের ডিফারাল সমীকরণ এক্স বৃদ্ধি = dx / (float) ধাপগুলি

  • Y বৃদ্ধি = dy / (float) ধাপ

এখানে কোনও নির্দিষ্ট স্থির ব্যবহার করা হয় না তবে ব্রেসেনহ্যাম এর আলগোরিদিম নির্দিষ্ট পয়েন্ট গাণিতিক কম্পিউটেশন ব্যবহার করা হয়। ডিএসএর বিপরীতে ব্রেশেনহ্যামের অ্যালগরিদম পূর্ণসংখ্যা গণিত ব্যবহার করে।

ব্যবহৃত অপারেশন প্রকার:

ডিডিএ ডিগ্রী সমীকরণগুলি গুণন এবং বিভাজন অপারেশনগুলির সাথে সমাধান করে। আপনি এখানে একই বিজ্ঞপ্তি করতে পারেন, এক্স বৃদ্ধি = dx / (float) ধাপ। Bresenham এর অ্যালগরিদম অতিরিক্ত এবং বিয়োগ অপারেশন ব্যবহার করে এবং আপনি তার পরবর্তী পিক্সেল মান গণনা সমীকরণ (এক্স

একটি + 1

  • , y

একটি + 1 ) এ একই বিজ্ঞপ্তি করতে পারেন। ডিডিএর সাথে তুলনা করলে বেতেনহ্যামের মধ্যে গাণিতিক সহজ হয়। দক্ষতা: আমরা আগেই আলোচনা করেছি, ডিএসএর তুলনায় ব্রেসেনহ্যামের অ্যালগরিদম সহজতর গাণিতিক ব্যবহার করে এবং এর ফলে ফলপ্রদ ফলাফল পাওয়া যায়। গতি:

  • ডিডিএ হিসাবে গুণ এবং বিভাজক অপারেশন সহ ফ্লোটিং পয়েন্ট ইন্টিজার ব্যবহার করা হয়, এটি তুলনামূলকভাবে ধীরে হয় এবং ব্রেসেনহ্যাম এর অ্যালগরিদম কেবলমাত্র পূর্ণসংখ্যা গণিত ব্যবহার করে শুধুমাত্র সংযোজন ও উপবাক্সের সাথে ব্যবহার করে। এই যথেষ্ট তার গণনা জন্য নেওয়া সময় হ্রাস এবং তাই এটি ডিডিএ তুলনায় দ্রুত।

যথার্থতা:

  • যদিও ডিডিএ ভাসমান পয়েন্ট মান ব্যবহার করে, ডিডিএর নির্ভুলতা বিএসসেনহ্যাম এর মতই ভালো নয়। বিভিন্ন কারণ এই ধারণা প্রভাবিত করে এবং সেইজন্য, Bresenham এর DDA তুলনায় আরো সঠিক। বন্ধ হয়ে যাওয়া:
  • শুধু ডিডিএর গণনা দেখুন। এক্স বৃদ্ধি = dx / (float) ধাপগুলি
  • আপনি 'float' লক্ষ্য করে দেখতে পারেন এবং তাই এটি মানগুলিকে পূর্ণ করে না, তবে ব্রেসেনহ্যামের অ্যালগরিদম নিকটতম পূর্ণসংখ্যার মান বন্ধ করে দেয় অতএব, ব্যবহার করা মানগুলি সহজেই ব্রেসেনহ্যামের এলগরিদম। এটা কি আঁকা?

ডিডিএ অঙ্কন লাইন ব্যতীত বৃত্ত এবং কার্ভ অঙ্কন করতে সক্ষম। Bresenham এর অ্যালগরিদম এছাড়াও উপরে উল্লিখিত সমস্ত অঙ্কন করতে সক্ষম এবং তার সঠিকতা DDA এর চেয়ে সত্যিই উচ্চতর। একইভাবে, বিএসএসএনহ্যামের অ্যালগরিদমটি ডিডিএ-এর উত্পাদিত পণ্যের তুলনায় দক্ষ কার্ভারের সাথে উঠতে পারে। উভয় অ্যালগরিদম ত্রিভুজ এবং বহুভুজ হিসাবে ভাল অঙ্কন করতে পারেন।

যা ব্যয়বহুল?

  • ডিডিএ-র মতো বৃত্তাকার বন্ধনও অন্তর্ভুক্ত, এটি ব্রেসেনহ্যামের অ্যালগরিদম ব্যবহারের চেয়ে ব্যয়বহুল।

কোনটি অপ্টিমাইজড আলগোরিদিম?

  • আমাদের উপরোক্ত আলোচনা থেকে, এটি খুব স্পষ্ট যে ব্রেসেনহ্যামের অ্যালগরিদম একটি গতিবিধি, খরচ এবং অপারেশন ব্যবহারের ক্ষেত্রে একটি অপটিমাইজড।

আমরা একটি ট্যাবুলার ফর্ম মধ্যে পার্থক্য তাকান।

  • s। না

মধ্যে পার্থক্য

ডিজিটাল ডিফারেনাল অ্যালগোরিদম

ব্রেসেনহ্যাম এর অ্যালগরিদম 1 কেন নাম? কারণ এটি সমীকরণের ডিজিটাল বাস্তবায়ন ছিল, এটি নামটি পেয়েছে।
এটি 196২ সালে জে.এ. ব্রেসেনহাম কর্তৃক আবিষ্কৃত হয় এবং সেইজন্য নামটি। 2। কম্পিউটেশন এর মধ্যে কঠোর গণনা করা হয়।
ব্যবহৃত কম্পিউটেশনগুলি সত্যিই সহজ। 3। ব্যবহৃত অপারেশনগুলির ধরন এটি বহুবিধ ও বিভাগ ব্যবহার করে। এখানে ব্যবহৃত নমুনা পার্থক্য সমীকরণগুলি Xincrement = dx / (float) ধাপগুলি,
ইয়িনক্রিমেন্ট = dy / (float) ধাপগুলি। এটি সংযোজন এবং নিম্নচাপ ব্যবহার করে। নমুনা গণনা এখানে (x a + 1, y

a + 1 ) হিসাবে চিহ্নিত করা যেতে পারে। 4। অ্যারেথমেটিক কম্পিউটেশন মান এটি ফ্লোটিং পয়েন্ট ভ্যালু ব্যবহার করে।
এটি শুধু পূর্ণসংখ্যা মান ব্যবহার করে 5। দক্ষতা কম দক্ষতা মধ্যে জটিল সংখ্যাবিজ্ঞান ফলাফল।
সহজতর গাণিতিক ফলাফল আরো দক্ষতা ফলাফল। 6। স্পিড গুণান্বিতকরণ এবং বিভাগের অপারেশনগুলির ব্যবহার তার গণনা প্রক্রিয়াগুলির জন্য অনেক সময় নেয়।
উপরন্তু এবং বিয়োগ অপারেশন ব্যবহারের DDA তুলনায় কম সময় কম সময় নেয়। 7। যথার্থতা এটি সঠিকতার মধ্যে কম।
এটি আরো সঠিক। 8। ঘূর্ণায়মান এটি বাস্তব মান ব্যবহার করে এবং মানগুলি কখনও বন্ধ করে না।
এটি নিকটতম পূর্ণসংখ্যা মানগুলিতে মান বন্ধ করে দেয়। 9। দক্ষতা অঙ্কন এটি লাইন, চেনাশোনা, এবং কার্ভ অঙ্কন করতে সক্ষম কিন্তু কম নির্ভুলতা সঙ্গে। আমরা এই অ্যালগরিদম সহ ত্রিভুজ এবং বহুভুজও আঁকতে পারি।
এটি আরও দক্ষতার সাথে লাইন, বৃত্ত এবং কার্ভ অঙ্কন করতে সক্ষম। ত্রিভুজ এবং বহুভুজ এই অ্যালগরিদম সঙ্গে আঁকা করা সম্ভব। 10। কম্পিউটেশন খরচ এটি ব্যয়বহুল হিসাবে এটি বৃত্তাকার বন্ধ হিসাবে ভাল হিসাবে জড়িত।
ব্রেসেনহ্যামের অ্যালগরিদম ব্যবহারটি ডিডিএর চেয়ে সস্তা। 11। অপ্টিমাইজড অ্যালগরিদম এটি একটি অপ্টিমাইজড আলগোরিদিম নয়
এটি একটি অপ্টিমাইজড আলগোরিদিম। আমরা DDA এবং Bresenham এর অ্যালগরিদম মধ্যে প্রত্যেক সম্ভাব্য পার্থক্য মোকাবেলা করেছি। এটি হয়তো পুনরাবৃত্তিমূলক বলে মনে হতে পারে তবে আবার সেইগুলি উল্লেখ করার জন্য কিছু বৈধ কারণ রয়েছে এবং আপনি যখন সম্পূর্ণভাবে এটি বুঝতে পারবেন তখন আপনাকে জানতে হবে। আপনি যদি এখনও অনুভব করেন যে সেখানে একটি অযৌক্তিকতা রয়েছে, দয়া করে আমাদের একটি মন্তব্য দিন। আসুন সঠিক জ্ঞান ভাগ করে একত্রিত করি!