দুটি প্যারালাল লাইনের মধ্যে যদি একটি পয়েন্ট থাকে তবে আমি কীভাবে পরীক্ষা করতে পারি?


10

গেমটিতে আমি ডিজাইন করছি এমন একটি বিস্ফোরণ ঘটেছে যা উত্সের দিক থেকে মাউসের দিকের দিকে চলে যায় shoot এই বিস্ফোরণের প্রস্থ সর্বদা একই হতে চলেছে।

পর্দার নীচে বরাবর (বর্তমানে কী) স্কোয়ারগুলি সরে যায় যা প্লেয়ারের নিয়ন্ত্রণে থাকা বিস্ফোরণ দ্বারা প্রভাবিত হওয়া উচিত।

বর্তমানে এই স্কোয়ারগুলির কোণগুলি বিস্ফোরণের দুটি সীমানা রেখার মধ্যে রয়েছে কিনা তা আবিষ্কার করার জন্য আমি একটি উপায় বের করার চেষ্টা করছি। আমি ভেবেছিলাম এটি করার সর্বোত্তম উপায় হ'ল বর্গাকার কোণগুলি একটি উত্স বিন্দুর চারদিকে ঘোরানো হবে যেন বিস্ফোরণটি সম্পূর্ণ অনুভূমিক ছিল এবং দেখুন কোণার Y এর মানগুলি বিস্ফোরণের প্রস্থের চেয়ে কম বা সমান ছিল যা এর অর্থ এই যে তারা প্রভাবিত অঞ্চলে রয়েছে, তবে আমি কাজ করতে পারি না


এটি আমার পক্ষে সহায়ক ছিল: stackoverflow.com/a/3461533/1599699
এন্ড্রু

উত্তর:


11

বিন্দুটি দুটি সমান্তরাল রেখার মধ্যে যদি এটি এক লাইনের এক পাশ এবং অন্য লাইনের অন্য দিকে থাকে (একই দিকে রেখার পয়েন্ট সরবরাহ করে)।

আপনি এই প্রশ্নের শীর্ষস্থানীয় উত্তরটি স্ট্যাকওভারফ্লোতে লাইনটির কোন দিকে (এটিতে 2 পয়েন্ট দ্বারা সংজ্ঞায়িত) কোন বিন্দুতে অবস্থিত তা কাজ করতে ব্যবহার করতে পারেন ।


একটি বিকল্প পদ্ধতি হ'ল বিন্দু থেকে মাঝারি রেখার দূরত্ব গণনা করা এবং এটি আপনার বিস্ফোরণের অর্ধেক বেধের সাথে তুলনা করে।


2

এটি আমি কীভাবে এটি করি (অতিরিক্ত চেক সহ যে সরবরাহ করা বিমানগুলি সমান্তরাল কিনা তা প্লেনের বস্তুগুলিতে এই আকারের সমতল সমীকরণ রয়েছে: অক্ষ + বাই + সিজেড + ডি = 0, যা আপনি সহজেই প্রদত্ত 3 থেকে উত্পন্ন করতে পারবেন পয়েন্ট বা একটি বিন্দু এবং একটি সাধারণ থেকে (আপনি এই গণিত সম্পর্কে অনিশ্চিত হলে এই পৃষ্ঠাটি দেখুন: http://paulbourke.net/geometry/Pointlineplane/ )

bool isPointBetweenParallelPlanes(const vec3 point, const Plane a, const Plane b){
// test if planes are parallel
vec3 cross = a.normal CROSS b.normal;
assert((a.normal CROSS b.normal) == vec3(0,0,0) && "These planes should be parallel.");
return ((a.normal DOT point) + a.D) * ((b.normal DOT point) + b.D) < 0.0;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.