Apa yang ingin Anda capai tampaknya sangat terkait dengan ini:
Analogi koordinat bola dalam dimensi-n
dalam kasus Anda dalam 2 dimensi maka Anda hanya menggunakan rumus ini untuk memetakan simpul persegi panjang yang Anda miliki (mari kita berharap itu dibagi) di bola Anda (jangan lupa untuk mengalikan dengan setengahDiameter di suatu tempat. Hanya matematikawan yang hidup di unit bola semua lainnya orang baik menggunakan diameter ...)
EDIT: Karena semua ini agak kabur saya memberikan beberapa wawasan lagi Apa yang Anda butuhkan dari rumus ini untuk digunakan:
x = r*sinθ*cosφ
y = r*sinθ*sinφ
z = r*cosθ
θ dan φ menjadi koordinat bola yang Anda cari (Latitude dan Longitude) untuk mendapatkannya, Anda mengambil koordinat x / y dari titik-titik pada bagian gambar panorama seperti itu:
public Void getPointPosOnSphere(float Longitude,float Latitude,float r) {
x = r*Mathf.sin(Longitude)*Mathf.cos(Latitude);
y = r*Mathf.sin(Longitude)*Mathf.sin(Latitude);
z = r*Mathf.cos(Longitude);
return new Vector3(x,y,z);
}
//here you could have a for loop iterating through points of your rectangle for each
//point you'd have associated a map coordinate :
Vector3 pointSpacePos = getPointPosOnSphere(pointCoordY,pointCoordX,HalfDiamater);
//End of the for loop
maka Anda akan mendapatkan quad Anda dipetakan pada sebuah bola berdasarkan dari posisi xy-nya pada sistem koordinat 2D yang diterjemahkan ke posisi 3D pada ruang tersebut sesuai dengan pemetaan bola.
EDIT: Baru saja mendapat ide, untuk melangkah lebih jauh Anda bisa merangkum koordinat pesawat di bola menggunakan nilai UV seperti:
for(int i = 0;i < vertices.Length; i++) {
vertices[i] = getPointPosOnSphere(UV[i].y,UV[i].x,HalfDiamater);
}
Di sana Anda dapat mengatur posisi quad pada perangkat lunak 3D favorit Anda (atau bahkan dengan kode melalui kesatuan) hanya dengan menetapkan nilai UV (jika dari 0 hingga 1 pada kedua sumbu maka quad akan dililitkan di sekitar bola)
PERINGATAN: Menggunakan UV akan mengharuskan Anda melakukan konversi Radian ke Derajat. (karena UV adalah 0 hingga 1)