আমি কীভাবে প্রোগ্রামে কোনও ক্যামেরাটিকে বলতে পারি যেখানে নির্দেশ করতে হবে?


8

এই মুহুর্তে আমার মনে কোনও বিশেষ ক্যামেরা নেই, আমি প্রোগ্রামাগুলি / গাণিতিকভাবে কীভাবে এটি হয় তা জানতে আগ্রহী।

আমার একটি 3 ডি স্পেস রয়েছে, একটি আয়তক্ষেত্র রয়েছে, একটি কোণায় একটি ক্যামেরা উপরে প্রবেশ করানো আছে।
আমার সেই আয়তক্ষেত্রে একটি চলমান বস্তু রয়েছে যা এর বর্তমান অবস্থানের (x, y, z) স্থানাঙ্ক প্রেরণ করে।
আমি সেই স্থানাঙ্কগুলি নিতে এবং সেগুলিকে সেই অবস্থানটিতে নির্দেশ করতে নির্দেশিকাগুলিতে অনুবাদ করতে চাই।
এই অনুবাদটি সাধারণত কীভাবে হয়?


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

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

আমার ব্যবহারের ক্ষেত্রটি একটি স্পোর্টস অ্যানালিটিক্স সিস্টেম, প্রতিটি খেলোয়াড় একটি ট্যাগ পরা থাকে যা পিচটিতে বর্তমান অবস্থান, গতি ইত্যাদি প্রেরণ করে। সুতরাং আমরা ইতিমধ্যে অবস্থান তথ্য। আমি অবশ্যই একবারে একটি প্যাটার্ন স্বীকৃতি নেব। দরকারী মনে হচ্ছে।
বট_বট

উত্তর:


10

ত্রিকোণমিতি!

আমার ক্যামেরাটি একটি ডিলিংক 5020-এল এবং এতে প্যান / টিল্ট কমান্ড রয়েছে যা এপিআইয়ের মাধ্যমে দেওয়া যেতে পারে । এটিতে পূর্বনির্ধারিত অবস্থানগুলিও রয়েছে এবং এপিআইয়ের মাধ্যমে ট্রিগারও করা যায়

প্রি-Init

  • আপনার ক্যামেরার একটি অবস্থানকে 0 ° প্যান এবং একটি 0 ° আপনার রেফারেন্সিয়ালটিতে ঝুঁকুনিতে সংজ্ঞায়িত করুন => আমরা এই অবস্থানটি কল করব Position 1

এটা

  • আপনার ক্যামেরাটিতে সরান Position 1
  • 0-ইনিশিয়াল ভেরিয়েবল বা আপনার API এর মাধ্যমে আপনার ক্যামেরার প্যান / টিল্ট কোথাও সঞ্চয় করুন

বস্তু তাকান

  • এক্স, ওয়াই এবং ওয়াই, জেড প্লেন দুটি প্লেনে আপনার অবজেক্টটি সন্ধান করুন
  • তারপরে আপনি প্যানটি (বাম / ডান) কোণটি পেতে পারেন (একটি আইওটি এসই-তে ওমগ গণিতের সূত্র!)

$$ \ arctan \ বিগ (অর্থাত \ frac {Y} {এক্স} \ বিগ) $$

  • তারপরে আপনি টিল্ট (উপরে / নিচে) কোণটি পেতে পারেন

$$ \ arctan \ বিগ (অর্থাত \ frac {z- র} {Y} \ বিগ) $$

  • আপনি হয়ত আপেক্ষিক চলাফেরার সাথে কাজ করতে পারেন সেহেতু নতুন প্যান / টিল্ট মানটি সংরক্ষণ / আপডেট করতে ভুলবেন না ...

আপনার ক্যামেরাটি কীভাবে স্থাপন করা হয়েছে তার উপর নির্ভর করে আপনি পূর্ববর্তী ফলাফলগুলি অস্বীকার করতে পারেন

(আমি সময় পেলে কিছু স্কিমিট যুক্ত করব)


2
@ হার্ডিলব দ্বারা প্রহার করা;) এবং তার আরও ভাল সূত্র রয়েছে ...
গৌফালাইট

2
দুর্ভাগ্যক্রমে LaTeX সমর্থন এই সাইটে উপলব্ধ নেই। আপনি যদি এটি পছন্দ করেন তবে বিকল্প হিসাবে কোনও চিত্র হিসাবে কোডকোগের মতো কোথাও থেকে এটি রপ্তানি করতে পারেন। ; (সম্পাদনা বিনা দ্বিধায় প্রয়োজনীয় বা এটা মুছে ফেলুন যদি আপনি এটি না চান আমি এটা তোমার জন্য করেছি!)
Aurora0001

আপনার সাহায্যের জন্য উভয়কে ধন্যবাদ। আমি ঠিক এটিই খুঁজছিলাম।
বট_বট

আমি মনে করি আপনি এই বিষয়টি বিবেচনায় রাখতে ভুলে গেছেন যে ঝিলু কোণের জন্য আর্টিকানটি হাইপেনটেনজটির উপর z উপাদানটির সাথে সম্মতিযুক্ত থাকতে হবে: ক্যামেরায় যেহেতু ক্যামেরা হতে চলেছে তাই y অংশের উপরে রাখলে আপনার ক্যামেরা অপর্যাপ্তভাবে বাড়বে / কমিয়ে দিতে পারে y- উপাদান এবং x- উপাদানগুলির মধ্যে ডান ত্রিভুজের অনুভূতি বরাবর নির্দেশিত, y অক্ষের সাথে নয়। আমি ভুল হলে শুধরে. :) দুর্দান্ত উত্তর, যদিও।
বেনামী 2

@ বেনামে 2 এটি আমার চিন্তাভাবনাও ছিল। আমি মনে করি না যে উপস্থাপিত উত্তরগুলির মধ্যে কোনটি আসলেই সঠিক আছে তবে বাস্তবে এখনই এটি দেখানোর জন্য আমার কাছে ব্যান্ডউইথ নেই - ভেরিয়েবল (প্যান বা টিল্ট) পেতে আপনার দুটি ত্রিভুজ এবং তিনটি সমন্বয় প্রয়োজন বলে মনে হয়। আপনি এটি দুটি পৃথক চরম উদাহরণের মাধ্যমে নিজেকে প্রমাণ করতে পারেন: 1,1,999 এর এক্স, ওয়াই, জেড 1,1,1 এর চেয়ে অনেক আলাদা আলাদা প্যান এবং অনেকগুলি আলাদা tাল দিতে চলেছে। গৌফালাইটের উত্তর উভয়ের জন্য একই প্যান দেয়।
দ্বিজুম

6

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

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

যেমন আপনি দেখতে পাচ্ছেন, ক্যামেরার দেখার ক্ষেত্রটি বস্তুর চেয়ে বড় হতে চলেছে - যদি কাছাকাছি সীমাতে না হয়, যখন বস্তুটি আরও দূরে সরে যায়।

এখন, আপনি ক্যামেরাটি সর্বদা অবজেক্টকে কেন্দ্র করে রাখতে চাইতে পারেন। সেক্ষেত্রে হার্ডলিব উল্লেখ করা গণনাগুলি আপনি সহজেই নিতে পারেন:

ϴ = arctan(y/x)

... যা কনভেনশন প্রতি এক্স-অক্ষ থেকে ঘড়ির কাঁটার দিকে হবে। স্তর থেকে দূরে আপনারও প্রয়োজন হবে:

α = arctan(z / ((y^2+x^2)^1/2))

স্পষ্টতই, আপনাকে তিনটি অক্ষে ক্যামেরার অবস্থানের মূল ভিত্তিতে গণনা করতে হবে।

অন্যদিকে, আপনি প্রয়োজনের তুলনায় ক্যামেরাটি আরও বেশি স্থানান্তর না করা পছন্দ করতে পারেন, অর্থ্যাৎ ফ্রেম থেকে সরে যেতে চলেছে কেবল তখনই ক্যামেরাটিকে সরাতে হবে। সেক্ষেত্রে আপনি সম্ভবত একটি "চাপ" পরিবর্তনশীল চান যা ক্যামেরাটিকে ফ্রেমের প্রান্তে কতটা কাছাকাছি অবস্থিত তার ভিত্তিতে তার কোণ পরিবর্তন করার সম্ভাবনা তৈরি করবে।

আপনি যদি সেই রাস্তাটিতে যান তবে আপনাকে উভয় ক্ষেত্রেই ক্যামেরার ক্ষেত্রের দেখার ক্ষেত্রের কোণটি জানতে হবে, যাতে আপনি নির্ধারণ করতে পারবেন যে ক্যামেরাটির দেখার ক্ষেত্রের সাথে কোনটি তুলনা করা হয়েছে।


এটা অসাধারণ! ধন্যবাদ, এই মুহুর্তে আমি অবজেক্টটি ক্যামেরার ক্ষেত্রের কেন্দ্রে রাখতে চাই।
বট_বট

2
আমি যখন আমার ক্যামেরাটি প্যান / টিল্ট করি তখন প্রতিটি অর্ডারের মধ্যে আমার কিছুটা বিলম্ব হয় (~ 0.5 সেকেন্ড), আপনার ক্যামেরাটি সরানোর সময় সে বিষয়ে সতর্ক থাকুন
গফালাইট

ভাল কথা - এটি অবশ্যই বিবেচনা করার মতো বিষয়।
বেনামী 2

5

এটি সাধারণত বেসিক ত্রিকোণমিতি দিয়ে সম্পন্ন হয় ।

আদিতে (0,0) ক্যামেরা এবং (x, y) অবজেক্টে একক 2 ডি ফ্ল্যাট প্লেনে কাজ শুরু করুন

প্রদত্ত যে এক্স দুরত্বটি ত্রিভুজটির সংলগ্ন অংশ এবং y দূরত্বের বিপরীতটি আপনি পাবেন:

tan (কোণ) = y / x

সুতরাং প্যান কোণ সঙ্গে পাওয়া যেতে পারে

কোণ = invTan (y / x)

আপনি ক্যামেরা এবং অবজেক্টের মধ্যে সোজা রেখার দূরত্ব (অনুমান) কাজ করতে পারেন:

h ^ 2 = x ^ 2 + y ^ 2

প্রদান:

এইচ = স্কয়ার্ট (x ^ 2 + y ^ 2)

এখন আপনি একইভাবে ঝুঁক কোণটি গণনা করতে z উচ্চতার সাথে h দূরত্ব ব্যবহার করতে পারেন।

আপনার কোণগুলি একবার হলে আপনি এটিকে ক্যামেরায় প্যান / টিল্ট নিয়ন্ত্রণ করে এমন কিছু খাওয়াতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.