3D জ্যামিতি প্রক্রিয়াকরণের জন্য ওপেন সোর্স জাভাস্ক্রিপ্ট লাইব্রেরি
ওপেন সোর্স ব্যবহার করা সহজ জাভাস্ক্রিপ্ট 3D লাইব্রেরি নোড পরিবেশে 3D জ্যামিতির সাথে কাজ করতে দেয়।
Open3D হল একটি খুব সহজ এবং ব্যবহারযোগ্য ওপেন সোর্স জাভাস্ক্রিপ্ট 3D লাইব্রেরি যা সফ্টওয়্যার বিকাশকারীদের 3d জ্যামিতি প্রক্রিয়াকরণ সংক্রান্ত সমস্ত জটিলতাগুলি পরিচালনা করতে সক্ষম করে৷ লাইব্রেরির ব্যাকএন্ডটি ব্যাপকভাবে অপ্টিমাইজ করা হয়েছে এবং সমান্তরালকরণের জন্য সেট আপ করা হয়েছে। লাইব্রেরি তৈরির প্রধান কারণ হল নোড পরিবেশে 3d জ্যামিতি সম্পর্কিত কাজগুলি পরিচালনা করার জন্য কোনও স্থিতিশীল লাইব্রেরি নেই। এটি টাইপস্ক্রিপ্টে লেখা যা ইনস্টল করার ঝামেলা ছাড়াই একটি প্রকল্পের জন্য সম্পূর্ণরূপে নেটিভ টাইপ সমর্থন করে।
Open3D কারেন্ট হল একটি মৌলিক 3d লাইব্রেরি যা বর্তমানে ভেক্টর/ম্যাট্রিস/লাইন/প্লেন/ছেদগুলির কার্যকারিতাকে অন্তর্ভুক্ত করে। Open3D হল একটি লাইটওয়েট লাইব্রেরি যা মৌলিক কিন্তু ভারী 3d গণনার সাহায্য করে যেমন একটি সমতলের নিকটতম বিন্দু অনুসন্ধান করা, দুটি লাইনের মিথস্ক্রিয়া, বিন্দু থেকে বিন্দু দূরত্ব গণনা করা, একটি সমতলকে রূপান্তর করা এবং রূপান্তরিত সমতল এবং পুত্রের স্বাভাবিক খুঁজে বের করা। এই লাইব্রেরিটি GPLv3 লাইসেন্সের অধীনে উপলব্ধ যার মানে এটি ব্যক্তিগত এবং বাণিজ্যিক প্রকল্পের জন্য বিনামূল্যে ব্যবহার করা যায়।
Open3D দিয়ে শুরু করা
Open3D স্থিতিশীল রিলিজ ইনস্টল করার সবচেয়ে সহজ উপায় হল সুতা ব্যবহার করা। একটি মসৃণ ইনস্টলেশনের জন্য অনুগ্রহ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
সুতার মাধ্যমে Open3D ইনস্টল করুন
$yarn add open3d
নিম্নলিখিত কমান্ড ব্যবহার করে NPM এর মাধ্যমে Open3D ইনস্টল করুন।
npm i open3d
আপনি Github সংগ্রহস্থল থেকে কম্পাইল করা শেয়ার করা লাইব্রেরি ডাউনলোড করতে পারেন।
JavaScript API এর মাধ্যমে বিভিন্ন উপায়ে একটি প্লেন রূপান্তর করুন
একটি সমতল একটি দ্বিমাত্রিক পৃষ্ঠ যা 3D স্পেসে অসীমভাবে প্রসারিত হয় এবং রূপান্তর একটি প্রক্রিয়া যা একটি চিত্রের আকার, আকার বা অবস্থান পরিবর্তন করে। ফ্রি জাভাস্ক্রিপ্ট 3D লাইব্রেরি, Open3D সফ্টওয়্যার বিকাশকারীদেরকে তাদের নিজস্ব জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলির মধ্যে একটি প্লেনকে সহজেই রূপান্তর করতে সহায়তা করে। এটি বিভিন্ন ফাংশন সমর্থন করে যেমন অনুবাদ, ঘূর্ণন, স্কেল এবং একটি সমতল মিরর। রূপান্তরকে একত্রিত করা এবং রূপান্তরিত সমতলের স্বাভাবিক খুঁজে পাওয়াও সম্ভব। আপনি একটি ঘূর্ণন রূপান্তরও তৈরি করতে পারেন যা সমতল 1 থেকে সমতল 2 তে নির্দেশ করে।
জাভাস্ক্রিপ্টের মাধ্যমে বিভিন্ন উপায়ে একটি প্লেন রূপান্তর করুন
Transform, Plane } from 'open3d';
// translation
const translate = Transform.Translation(new Vector3d(1, 2, 3));
// rotation
const rotation = Transform.Rotation(Math.PI / 3, new Vector3d(5, 2, 0), new Point3d(-2, 2, 9));
// scale
const scale = Transform.Scale(new Point3d(1, 2, 3), 3);
// mirror
const mirror = Transform.Mirror(new Plane(Point3d.Origin, new Vector3d(8, 2, -4), new Vector3d(0, 8, 5)));
// combine transform
const transformation = Transform.CombineTransforms([translate, rotation, scale, mirror]);
// transform plane
const plane = new Plane(Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis);
const transformedPlane = plane.Transform(transformation);
জাভাস্ক্রিপ্টের মাধ্যমে দুটি লাইনের ছেদ গণনা করুন
দুটি লাইনের একটি ছেদ একটি বিন্দু যেখানে দুটি লাইনের গ্রাফ একে অপরকে অতিক্রম করে। দুই বা ততোধিক রেখার ছেদ জ্যামিতিতে খুব গুরুত্বপূর্ণ ভূমিকা পালন করে। ওপেন সোর্স জাভাস্ক্রিপ্ট ওপেন3ডি লাইব্রেরি জাভাস্ক্রিপ্ট কোডের মাত্র কয়েকটি লাইনের সাথে দুটি লাইনের ছেদ গণনা করতে সম্পূর্ণরূপে সমর্থন করে। কাজগুলি অর্জন করার জন্য প্রথমে আপনাকে উভয় লাইনকে সংজ্ঞায়িত করতে হবে এবং তারপরে গণনার প্রক্রিয়াটি সম্পূর্ণ করতে Intersection.LineLine() ফাংশনগুলিকে কল করতে হবে।
কিভাবে জাভাস্ক্রিপ্ট লাইব্রেরির মাধ্যমে দুই লাইনের ছেদ গণনা করা যায়
import { Line, Point3d, Intersection } from 'open3d';
const line1 = new Line(new Point3d(-4, -1, 0), new Point3d(5, 0, 0));
const line2 = new Line(new Point3d(0, -2, 0), new Point3d(3, 7, 0));
const intersection = Intersection.LineLine(line1, line2);
জাভাস্ক্রিপ্ট অ্যাপের ভিতরে 3D ভেক্টর পরিচালনা করুন
একটি 3D ভেক্টর হল ত্রিমাত্রিক স্থানের একটি লাইন সেগমেন্ট যা বিন্দু A (টেইল) থেকে বিন্দু বি (মাথা) পর্যন্ত চলছে। ওপেন সোর্স জাভাস্ক্রিপ্ট ওপেন3ডি লাইব্রেরি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনের ভিতরে 3D ভেক্টরের সাথে কাজ করার জন্য সমর্থন প্রদান করেছে। আপনি সহজেই একটি ভেক্টরের একটি নতুন উদাহরণ শুরু করতে পারেন, এর তিনটি উপাদান ব্যবহার করে। এটি সহজে একটি ভেক্টরের X, Y বা Z উপাদান পেতে বা সেট করতে দেয়। এই ভেক্টরের দৈর্ঘ্য (বা মাত্রা বা আকার) গণনা করাও সম্ভব। এটি দুটি ভেক্টরের সমষ্টি, একটি বিন্দুতে একটি ভেক্টর যোগ করা, এই ভেক্টরে একটি বিন্দু যোগ করা, ভেক্টর বিয়োগ করা, একটি ভেক্টরকে একটি সংখ্যা দ্বারা গুণ করা ইত্যাদি বৈশিষ্ট্যগুলিকে সমর্থন করে।