আমার প্রোফাইলে, বেরিয়েনট্রিক সমন্বয়গুলি সন্ধান করা স্পষ্টতই কিছুটা বাধা is আমি এটিকে আরও দক্ষ করে তুলতে চাই।
এটি শিরলে পদ্ধতি অনুসরণ করে , যেখানে আপনি ত্রিভুজের ভিতরে পয়েন্ট পি এম্বেড করে গঠিত ত্রিভুজগুলির ক্ষেত্রটি গণনা করুন।
কোড:
Vector Triangle::getBarycentricCoordinatesAt( const Vector & P ) const
{
Vector bary ;
// The area of a triangle is
real areaABC = DOT( normal, CROSS( (b - a), (c - a) ) ) ;
real areaPBC = DOT( normal, CROSS( (b - P), (c - P) ) ) ;
real areaPCA = DOT( normal, CROSS( (c - P), (a - P) ) ) ;
bary.x = areaPBC / areaABC ; // alpha
bary.y = areaPCA / areaABC ; // beta
bary.z = 1.0f - bary.x - bary.y ; // gamma
return bary ;
}
এই পদ্ধতিটি কার্যকর, তবে আমি আরও কার্যকর একটি সন্ধান করছি!