দ্রুত অ্যানালিয়ালাইজড লাইন অঙ্কন


11

ব্রেনহ্যামের লাইন অ্যালগরিদম কেবল দ্রুত পূর্ণসংখ্যার ক্রিয়াকলাপগুলি (সংযোজন, বিয়োগফল এবং 2 দ্বারা গুণন) ব্যবহার করে সরল রেখা আঁকার একটি উপায় of তবে এটি অ্যালাইজড লাইন তৈরি করে। অ্যান্টিঅ্যালিয়েসড লাইনগুলি আঁকানোর জন্য কি একইভাবে দ্রুত উপায় আছে?


1
দু'একটি প্রশ্ন ... আপনি কি সিপিইউ বা জিপিইউতে অঙ্কন যুক্তি করছেন? এছাড়াও, আপনি কি পূর্ণসংখ্যার ভিত্তিক অ্যালগরিদম বা ভাসমান পয়েন্টটি সন্ধান করছেন?
অ্যালান ওল্ফ

5
@ অ্যালান ওল্ফ, সিপিইউতে পূর্ণসংখ্যা অ্যালগরিদম - একই পরিবেশ যার জন্য ব্রেসেনহ্যামের অ্যালগরিদম ডিজাইন করা হয়েছিল।
চিহ্নিত করুন

3
en.wikedia.org/wiki/Xiaolin_Wu%27s_line_algorithm ক্লাসিক একটি, যদিও উইকিপিডিয়া পৃষ্ঠাটি বেশ অর্ধ-বেকড এবং আমার কাগজে অ্যাক্সেস নেই। যদিও এটি একটি অলস প্রশ্নের মতো অনুভূত হয়েছে, যেহেতু কিছু বেসিক গুগলিং করে এটি সন্ধান করা বেশ সহজ।
ইয়ুরিক্স

2
কেবল উচ্চস্বরে চিন্তা করে, আমি অনুভব করি যে মাল্টি-পিক্সেল-পুরু লাইনগুলি আঁকার জন্য ব্রেসেনহ্যামকে মানিয়ে নেওয়া সহজ হওয়া উচিত। তারপরে আপনি গাণিতিক আদর্শ লাইন থেকে প্রতিটি পিক্সেল কেন্দ্রের দূরত্ব গণনা করে এবং কিছু ফলোঅফ ফাংশন প্রয়োগ করে অ্যান্টিআলাইজিং করতে পারেন।
নাথান রিড

2
যদিও আমি কোনও মন্তব্যকে সঠিক হিসাবে চিহ্নিত করতে পারি না।
চিহ্নিত করুন

উত্তর:


9

অ্যান্টিঅ্যালিয়েসড লাইনগুলি আঁকানোর জন্য কি একইভাবে দ্রুত উপায় আছে?

না, কারণ সংজ্ঞা অনুসারে একটি অ্যান্টি-এলিজেড লাইন আরও পিক্সেল স্পর্শ করে। এই জাতীয় অ্যালগরিদমগুলি ধীর হবে।


একটি সফ্টওয়্যার রাস্টারাইজারে, অ্যান্টি-এলিয়াসেড লাইন আঁকার সর্বব্যাপী উপায় হ'ল জিয়াওলিন উয়ের লাইন অ্যালগরিদম । এটি প্রয়োগ করা কঠিন নয় এবং যাইহোক, সেই লিঙ্কটিতে অস্বাভাবিকভাবে উচ্চ-মানের সিউডোকোড রয়েছে।

একটি হার্ডওয়্যার রাস্টার পাইপে, লাইন আদিমটি স্ক্রিন-স্পেস কোয়াডে ডিফল্ট (বা ব্যবহারকারী দ্বারা সরবরাহিত) জ্যামিতি শেডার দ্বারা প্রসারিত হয় এবং তারপরে দুটি ত্রিভুজ হিসাবে আঁকা হয়, যা পরে সাধারণ উপায়ে অ্যান্টি-এলিয়াসড হতে পারে।

একটি রেট্রেসারে বিভিন্ন বিকল্প রয়েছে। আপনি কীভাবে 1D অবজেক্ট আঁকতে চান তা চিন্তা করার মতো। হতে পারে সিলিন্ডার হিসাবে (উ ছায়া!)। নোট করুন যে এটি দৃষ্টিকোণ / পূর্বসূরীদের বিষয়গুলির সাথে পরিচয় করে যা আপনি চান তা হতে পারে (বা নাও পারে)। একটি পরিষ্কার জেনারালাইজেশন নেই। তারপরে, স্পষ্টতই, আপনি যাই করুন না কেন, আপনি কেবল এটির নমুনা দিন।


"এবং যাইহোক সেই লিঙ্কটিতে অস্বাভাবিকভাবে উচ্চ-মানের সিউডোকোড রয়েছে", আমি একমত নই। এই ছদ্ম কোডটি সম্ভবত ওয়ে এর অ্যালগরিদমের যথাযথ প্রয়োগযোগ্যতা নয় যদিও এটি মনে হয় যে এটি প্রায় সমস্ত জায়গাতেই ওয়েবে ব্যবহৃত হয়েছিল। উ এর আসল অ্যালগরিদম উভয় প্রান্ত থেকে কেন্দ্রের দিকে চলে গিয়েছিল এবং এটি আসলে ব্রেসেনহ্যামের চেয়ে দ্রুত ছিল কারণ এটি আরও পিক্সেল লিখলেও প্রায় অর্ধেক অপারেশন করে। লিঙ্কযুক্ত উইকিপিডিয়া নিবন্ধে পোস্ট করা নয় , আমি উয়ের আসল অ্যালগরিদম সম্পর্কে বলছি ।
অক্টোপাস

@ অ্যাক্টপাস [বিশেষত দ্রুত গতির উপর অস্পষ্ট সংশয় প্রকাশ করে, তবে খণ্ডন বা নিশ্চিত করার প্রসঙ্গের অভাব রয়েছে — যদি এটি হয় তবে উত্স, সংশোধন এবং সম্পাদনা অবশ্যই স্বাগত]]
imallett

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

1
তবে আমি @ অक्टোপাসের সাথে একমত হই, এমনকি "এক প্রান্ত থেকে অন্য প্রান্তে" আঁকতেও গ্রহণ করে, সিউডোকোড হ'ল Wu এর অ্যালগরিদম কেবল তখনই যদি পূর্ণসংখ্যার গাণিতিক ব্যবহার করা হয়। কোড আমি অনলাইনে দেখছি ভাসমান-পয়েন্ট গণিত ব্যবহার করে, যা একটি উল্লেখযোগ্য পরিবর্তন। উয়ের কাগজে, অ্যালগরিদম কেবলমাত্র পূর্ণসংখ্যার গাণিতিক (বা আসলে স্থির-পয়েন্ট গণিত) ব্যবহার করে।
জানু-Åকে লারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.