বহুভুজগুলিতে লাইন


11

আমি অ্যালগরিদমের "নাম" সন্ধান করতে ব্যর্থ হয়েছি যা কাউকে লাইনগুলি বহুভুতে রূপান্তর করতে দেয়। যেহেতু এই সমস্যাগুলি জিআইএস এবং গণনা জ্যামিতি এবং কম্পিউটার বিজ্ঞানের ক্ষেত্রগুলি অতিক্রম করে। মিশ্রণে আর কী যুক্ত করতে হবে তা আমি নিশ্চিত নই। আমি যা অনুসন্ধান করেছি তার একটি তালিকা সরবরাহ করতে আমি নারাজ যেহেতু আমি অন্যান্য জনগণ তাদের প্রথম পছন্দ অনুসন্ধানের মানদণ্ড বিবেচনা করবে কি তা জানতে চাই।

দৃশ্য ... আমার লাইন রয়েছে (একটি লাইন তৈরি করতে দুটি পয়েন্ট প্রয়োজন) ... প্রতিটি লাইন কমপক্ষে একটি অন্য লাইনের সাথে সংযুক্ত থাকে। সংযুক্ত রেখার মধ্যবর্তী স্থানটি একটি বহুভুজ গঠন করে। সবচেয়ে সহজ দৃশ্যটি ত্রিভুজ হবে ... একটি আয়তক্ষেত্র ... এবং এক বহু-বিভাগিত বৈশিষ্ট্যগুলির বাইরে চলে যেতে পারে।

যে কোনও অস্পষ্ট বর্ণনার জন্য দুঃখিত, তবে আমি যেমন বলেছিলাম যে আমি ইতিমধ্যে যে পথটি দেখেছি সেখানে সম্ভাব্য সমাধানগুলি গাইড করতে চাই না, যেহেতু আমি চূড়ান্ত সমাধানের মতো "প্রথম চিন্তায়" আগ্রহী।


লাইন একত্রিত করতে পারেন? লাইনগুলি পার হতে পারে? (অর্থাত্ এটি পরিষ্কার?) যদি তাই হয় তবে আমি আশা করি বিল্ডটি এই প্রক্রিয়াটিকে কল করা খুব বেশি অ্যাপ নির্দিষ্ট নয়।
কर्क কুইকেনডাল

বহুভুজ তৈরির আগে কर्क কাকতালীয় লাইন এবং অন্যান্য "ত্রুটিগুলি" সরিয়ে ফেলা হত ... আমি "অ্যালগরিদম নাম" সন্ধান করার চেষ্টা করছি যা আমি নিশ্চিত যে বিভিন্ন জিআইএস প্যাকেজগুলিতে প্রয়োগ করা হয়েছে (যেমন অর্কিগিস)। সুতরাং সংক্ষেপে, বিবেচনা করুন যে সমস্ত অবনতিজনিত পরিস্থিতি মোকাবেলা করা হয়েছে এবং আপনাকে পরিষ্কার লাইন (২ পয়েন্ট লাইন) রেখে দেওয়া হয়েছে যা নোডের সাথে মিলিত হয় যা আপনি বহুভুজ নির্মাণ করতে সক্ষম হবেন। মূলটি হ'ল লাইনগুলি বিদ্যমান, কোনও অধঃপতিত শর্ত নেই এবং মধ্যবর্তী স্থানটি বহুভুতে রূপান্তরিত হওয়া দরকার। ধন্যবাদ

পয়েন্টগুলি কি প্লেনে বা গোলকের দিকে রয়েছে?
কर्क কুইকেনডাল

কર્ક ... প্লেনে মেট্রিক এক্স, ওয়াই কোঅর্ডিনেট, গোলক স্থানাঙ্ক নয়। উদাহরণস্বরূপ, বলুন যে আপনার কাছে রেখাংশ রয়েছে যা ভোরোনাই ডায়াগ্রাম গঠন করবে তবে আপনার যা কিছু রয়েছে সেগুলি সেগমেন্টগুলি রয়েছে তবে এটি প্রকৃত ডেটা কাঠামো নয়। সংক্ষেপে, প্রতিটি বিভাগটি সংযুক্ত এবং প্রতিটি বিভাগটি অনন্য।

উত্তর:


4

সম্ভবত "এলাকা পূরণ"? দেখুন এখানে এবং এখানে

সম্পাদন করা

আর একটি সম্ভাবনা সীমাবদ্ধ ত্রিভুজাকরণ । (লিঙ্কটি একটি জাভা অ্যাপলেটের সাথে সম্পর্কিত যা আপনাকে মাউস দিয়ে একটি গ্রাফ আঁকতে দেয় এবং তারপরে ট্রায়ানগুলেট করার জন্য বিমান-সুইপ অ্যালগরিদমকে চিত্রিত করে) কাঙ্ক্ষিত বহুভুজ তৈরি করুন: নতুনভাবে তৈরি প্রান্তটি ভাগ করে নেওয়ার জন্য কেবল সমস্ত প্রতিবেশী ত্রিভুজগুলি একত্রিত করুন।

উদাহরণ

আসল গ্রাফ:

আসল গ্রাফ

ত্রিভুজিত গ্রাফ:

এখানে চিত্র বর্ণনা লিখুন


বিলটি আপ-ভোটে যাচ্ছি যেহেতু আমি এর আগে আসিনি ... বিভিন্ন শাখায় লোকের কাছ থেকে অন্যান্য মন্তব্য সীমাবদ্ধ করতে চাই না।

যদিও, মূলত রাস্টার পূরণ করে, এটিই নিকটতম উত্তর। আমার কাছে এখনও একটি অ্যালগরিদম নাম নেই যদি না এটি রাস্টার বা ভেক্টরের সাথে সংযুক্ত থাকে তবে "সুইপ" অ্যালগরিদম যথেষ্ট হতে পারে তবে আমি আমার জীবন সম্পর্কে বুঝতে পারি না কেন স্থানাঙ্কগুলি এক্স এর পরিবর্তে ওয়াই দ্বারা বাছাই করা হবে ( যা বেশিরভাগ ভাষায় প্রয়োগ করা সহজ)।

@ ড্যান Y বা x দ্বারা বাছাই করা অবিরাম। আপনি এও ঠিক করেছেন যে প্লেন-সুইপ বা লাইন-সুইপ অ্যালগরিদমগুলি জড়িত রয়েছে, তবে দুর্ভাগ্যক্রমে এটি একটি সাধারণ কৌশল যা প্রায় সমস্ত কম্পিউটেশনাল জ্যামিতির পদ্ধতিগুলি কভার করে, সুতরাং এটি আপনার অ্যালগরিদমের জন্য বিশেষত অনুসন্ধানের জন্য উপযুক্ত শব্দ নয়। লক্ষ্য করুন এই বিশেষ সমস্যা না , বিশুদ্ধরূপে গ্রাফ-তত্ত্বীয় কারণ এটি একটি সমতল (অথবা গোলক) মধ্যে পলিলাইন জটিল একজন এমবেডিং জড়িত, এবং তাই একটি ভাল অ্যালগরিদম আবশ্যক এমবেডিং সম্পর্কে তথ্য বজায় রাখা: যে কেন এটা সত্যিই একটি এলাকা ভরাট সমস্যা অন্তরে.
হোবার

5

ইন গ্রাফ তত্ত্ব , এই অপারেশন বলা হয় গণনার মুখোমুখি । এটি প্রদত্ত গ্রাফের দ্বৈত গণনার সাথে সম্পর্কিত ।

উদাহরণস্বরূপ, মধ্যে GeOxygène জাভা গ্রন্থাগার, গ্রাফ (যাকে বলা হয় CarteTopo ) তার পুনরুদ্ধার করতে একটি পদ্ধতি getFaces হয়েছে মুখ

এটাকে বলা হয় polygonization মধ্যে JTS


ভাল লিঙ্ক। যাইহোক, তারা সকলেই অনুমান করে যে @ ড্যানের সমস্যাটি ইতিমধ্যে সমাধান হয়ে গেছে: একটি গ্রাফকে "প্ল্যানার" বলতে সক্ষম হওয়া মানে আপনি ইতিমধ্যে বহুভুজিক মুখগুলি সনাক্ত করেছেন। তিনি জানতে চান যে কীভাবে একজন আর্কেট্রি সংগ্রহের (বিমানে) একটি সৎ-থেকে-সদর্থক পরিকল্পনাকারী গ্রাফকে প্রথম স্থানে রূপান্তর করতে চলেছেন। এর জন্য এটির "টপোলজি", যেমন একটি ডিসিইএল এর উপস্থাপনা তৈরি করা দরকার।
whuber

অনেক ঝকঝকে ধন্যবাদ, আপনি জ্ঞানের পরিধি! আমি ভাবছি কেউ কীভাবে এত সুদূর হতে পারে।
জুলিয়ান

4

RepRap হোস্ট সফ্টওয়্যার লাইন বিভাগের একটি তালিকা (কিছু অজানা এলোমেলো ক্রমে) বহুভুজের তালিকায় রূপান্তর করে, যা আপনি যা করার চেষ্টা করছেন তার মতোই লাগে।

বিশেষত, RepRap "শেষ ম্যাচিং" অ্যালগোরিদম প্যাথলজিকাল কেসগুলির একগুচ্ছ পরিচালনা করে।

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


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

3

আপনি কি আপনার সমস্যার সমাধানের জন্য জিআরএসএসের কোড বেসটি অনুসন্ধান করেছেন? -> http://old.nabble.com/Polyline-to- পোলিগন-operation-td20257839.html


1
ধন্যবাদ ... তবে আমি একটি নির্দিষ্ট "প্যাকেজড" সমাধান খুঁজছি না তবে অন্তর্নিহিত অ্যালগরিদম এবং / অথবা এর নাম যা জিআইএস,

আমি বিশেষত আমার লিঙ্কে উল্লিখিত 2 টি প্রক্রিয়াগুলির পিছনে উত্স কোডটি অনুসন্ধান করতে চাইলে আপনাকে সাহায্য করতে পারে।
ওয়ান

আমি অনুমান করি যে কোডটি দেখার জন্য আমার সফ্টওয়্যারটি ইনস্টল করতে হবে যেহেতু আমি যদি কিছু মিস না করি তবে সেই পৃষ্ঠাগুলিতে কোনও তালিকা দেখি না।

1
আপনি গ্রাস উত্স অনলাইনে ব্রাউজ করতে পারেন: trac.osgeo.org/grass/browser
আন্ডার ডার্ক

@unddark পয়েন্টার জন্য ধন্যবাদ। যতদুর আমি থেকে বলতে পারেন main.cমধ্যে v.typeউৎস, সব যে ঘটবে যে বৈশিষ্ট্য পুনরায় লেবেল গণ্ডি হল: কোন প্রকৃত প্রক্রিয়াকরণ ঘটে। পূর্ববর্তী ক্ষেত্রে এটি খুব আশ্চর্যজনক নয়: যদি (আমি নিশ্চিতভাবে জানি না) পুরো 2 ডি টপোলজিকাল তথ্য দিয়ে বৈশিষ্ট্যগুলি বজায় রাখা হয়, তবে বহুভুজ অঞ্চলগুলি সনাক্ত করার সমস্ত গণনা বৈশিষ্ট্য তৈরি বা আমদানির সময় স্বয়ংক্রিয়ভাবে স্থান নিয়েছে এবং সর্বদা ধরে রাখা হয় সমস্ত জিওপ্রসেসিং অপারেশন।
whuber

3

আরে

আমি মনে করি না আপনি যা খুঁজছেন তা একটি নির্দিষ্ট অ্যালগরিদম। আপনার ডেটাসেটের উপর নির্ভর করে টাস্কটি বেশ কঠিন বা খুব সহজ হতে পারে।

আপনার সমস্যাটি কমপক্ষে 2 ভাগে ভাগ করা উচিত। 1) নেটওয়ার্কিংয়ের সমস্যাটি আরও রয়েছে, কীভাবে লাইনস্ট্রিংয়ের বদ্ধ রিংগুলি খুঁজে পাবেন। 2) বন্ধ লাইনস্ট্রিংটিকে বহুভুজ হিসাবে প্রকাশ করুন

দ্বিতীয় অংশটি, যা "বহুভুজগুলিতে রেখাকে রূপান্তরিত করছে" বহুভুজ / লাইনস্ট্রিং উপস্থাপনার চেয়ে ফর্ম্যাটকে অনেক বেশি নির্ভর করে। আমার অর্থ:

লাইনস্ট্রিং (1 1, 2 2)
লাইনরেটিং (2 2, 2 1)
লাইনস্ট্রিং (2 1, 1 1)

থেকে:
পলিজন ((1 1,2 2,2 1,1 1))

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

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

আমার বক্তব্যটি হ'ল ডেটাসেটের শর্তটি এটি কীভাবে করা যায় সে সম্পর্কে সমস্ত নিয়ম সেট করে। যদি আপনি লাইনস্ট্রিংসের একটি স্প্যাগেটিতে সমস্ত সম্ভাব্য বহুভুজগুলি সন্ধান করতে চান তবে আমি ধরে নিয়েছি যে সমস্ত ক্রসিংগুলিতে ভার্টেক্স পয়েন্ট লাগাতে, সমস্ত সম্ভাব্য পাথ অনুসন্ধান করা ইত্যাদিতে প্রচুর বিচ্ছিন্ন অ্যালগরিদম থাকতে হবে।

পোস্টজিআইএস- এ ফাংশনটিকে এসT_ পলিজোনাইজ বলা হয় That ফাংশনটি আপনি যে লাইনস্ট্রিংগুলি দিয়ে থাকেন তা থেকে সমস্ত সম্ভাব্য বহুভুজ তৈরি করে।

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

কিছু চিন্তা

/ Nicklas


1

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


1
আমি এখানে মন্তব্য করব, যদিও এই মন্তব্যটি প্রস্তাবিত সমাধানের কিছু পাশাপাশি অন্যদেরও ঠিকানা: সমস্যা না পারেন, একটি নেটওয়ার্ক (অথবা গ্রাফ) এ প্রতিনিধিত্ব করা। এটিতে দ্বিমাত্রিক পৃষ্ঠের মধ্যে কীভাবে লাইনগুলি সংযুক্ত করা হয় সে সম্পর্কে তথ্য প্রয়োজন । সুতরাং ফরোয়ার্ড / পশ্চাদপদ নক্ষত্রের উপস্থাপনাগুলি খুব কম কাজে লাগবে; একটি DCEL বা এর মতো কিছু দরকার something
কুফর

@ শুভ - আমি ধরে নিচ্ছিলাম যে ড্যানের মন্তব্য যে সমস্ত "ত্রুটি" মুছে ফেলা হয়েছে তা বোঝায় যে লাইনগুলি পরিষ্কার ছিল। যেমন, এটি কোনও গ্রাফের সমস্ত চক্র সন্ধান করার গ্রাফ ট্র্যাভার্সাল সমস্যা থেকে এটি হ্রাস করা উচিত। প্রথমে আমি ভেবেছিলাম ফরোয়ার্ড স্টার অ্যালগরিদমগুলিতে সহায়তা করবে যা প্রতিটি নোডে তীব্র ডানদিকে ঘুরতে ঘুরতে গ্রাফের চারপাশে হাঁটতে পারে। তবে কিছুটা বেশি তাকালে আরও ভাল উপায় পাওয়া যায় are stackoverflow.com/questions/261573/… তবে তবুও, এটি ধরে নিয়েছে যে সমস্যাটি গ্রাফ হিসাবে পুনরায় বর্ণিত হতে পারে।
কर्क কুইকেনডাল

1
কোনও গ্রাফের চক্র সন্ধান করা পরিকল্পনাকারী গ্রাফের মুখগুলি সন্ধান করার মতো নয়। Ices a, b, c, d} এবং প্রান্ত {a, b}, {a, c}, {b, c}, {b, d}, {c, d with সহ বিমূর্ত গ্রাফটি বিবেচনা করুন} চক্রগুলির জন্য একটি ভিত্তিতে a-> বি-> ডি-> সি-> এ এবং এ-> বি-> সি-> এ রয়েছে। প্ল্যানারে এম - এম্বেডিং - - ((0,1), বি -> (2,2), সি -> (2,0), ডি -> (3,1) (যেখানে সমস্ত প্রান্ত লাইন বিভাগে রয়েছে), চক্র A-> B-> d-> সি> একটি হয় না একটি মুখ, কিন্তু আমরা (1,1) এর ঘ সরালে, এটা হল একটি মুখ। এটি দেখায় যে "মুখ" ধারণার জন্য কেন গ্রাফটিকে প্লেনে এম্বেড করা প্রয়োজন এবং গ্রাফের বিমূর্ত কাঠামো থেকে কেন মুখগুলি বিশুদ্ধরূপে গণনা করা যায় না।
হোয়বার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.