cevap
orada enlem M soyları (yatay) ve (dikey) boylam N hatları, daha sonra
(x, y, z) de noktalar koymak = halinde (sin (Pi * m/m) cos (2Pi * n/N), sin (Pi * m/M) günah (2Pi * n/N), cos (Pi * m/M))
Her m için {0, ..., M} ve {0, ..., N-1} 'de n ve buna göre noktalar arasındaki çizgi bölümlerini çizin.
düzenleme: Eğer kutuplar
+1 hakkında bir makaleye yönlendirilmeleri gerekir. Bu muhtemelen OP'nin sorduğu şeydir. –
+1, çünkü bu herhangi bir grafik kitaplığı ile çalışır. Başka bir soru: Kürenin yarıçapını da kontrol etmenin bir yolu var mı? – kiltek
@kiltek: Bu, 0'dan 1'e (x, y, z) için değerler verir. Herhangi bir yarıçapa ölçeklendirmek için, her noktayı istediğiniz yarıçapla çarpın. – Carrotman42
sadece bir tahmin, muhtemelen bu çözmek (0,0,0)
x²+y²+z²=1
ortalanan bir küre formülünü kullanabilirsiniz x, sonra y ve z için bir değerler kümesini döngü ve hesaplanan x ile çizim.
Bu yöntemin, söz konusu projenin performans gereksinimlerine bağlı olarak, bu yöntemin mutlaka pahalı olduğuna inandığım bir sqrt() 'gerektirdiği için iyi bir fikir olduğundan emin değilsiniz. –
Bu yöntemin gerçekten denemek istediğine kimsenin karar vermesi durumunda, muhtemelen [Marching Cubes] (https://en.wikipedia.org/wiki/Marching_cubes) ... – porglezomp
Bu sadece test etmeden başımın üstünde kapalı kısmındaki "enlem çizgileri" saymak için olsun ya da olmasın karar vermelidir çünkü belki 1 veya gerektiği gibi 2 oranında M ayarlayın. İyi bir başlangıç noktası olabilir. Eğer çift kullanırsanız, bu size en doğru ve en kesin hassasiyetle sonuçları verecektir.
public void generateSphere(3DPoint center, 3DPoint northPoint, int longNum, int latNum){
//Find radius using simple length equation (distance between center and northPoint)
//Find southPoint using radius.
//Cut the line segment from northPoint to southPoint into the latitudinal number
//These will be the number of horizontal slices (ie. equator)
//Then divide 360 degrees by the longitudinal number to find the number of vertical slices.
//Use trigonometry to determine the angle and then the curcumference point for each circle starting from the top.
//Stores these points in however format you want and return the data structure.
}
güzel bir açıklama – kiltek
Bu, yukarıda cevap çalışan bir C# kodu olduğunu:
using UnityEngine;
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class ProcSphere : MonoBehaviour
{
private Mesh mesh;
private Vector3[] vertices;
public int horizontalLines, verticalLines;
public int radius;
private void Awake()
{
GetComponent<MeshFilter>().mesh = mesh = new Mesh();
mesh.name = "sphere";
vertices = new Vector3[horizontalLines * verticalLines];
int index = 0;
for (int m = 0; m < horizontalLines; m++)
{
for (int n = 0; n < verticalLines - 1; n++)
{
float x = Mathf.Sin(Mathf.PI * m/horizontalLines) * Mathf.Cos(2 * Mathf.PI * n/verticalLines);
float y = Mathf.Sin(Mathf.PI * m/horizontalLines) * Mathf.Sin(2 * Mathf.PI * n/verticalLines);
float z = Mathf.Cos(Mathf.PI * m/horizontalLines);
vertices[index++] = new Vector3(x, y, z) * radius;
}
}
mesh.vertices = vertices;
}
private void OnDrawGizmos()
{
if (vertices == null) {
return;
}
for (int i = 0; i < vertices.Length; i++) {
Gizmos.color = Color.black;
Gizmos.DrawSphere(transform.TransformPoint(vertices[i]), 0.1f);
}
}
}
- 1. matlab kullanarak bir düzleme bir küre çizme
- 2. Sözde kodda bir algoritma yazma
- 3. Dünyaya benzeyen bir küre oluşturma
- 4. Matlab: Sahte bir 3D görünüme sahip ksdensity ile bir arsa
- 5. Bir kürenin dönme vektörünün hesaplanması
- 6. matlab 3d örgü ve çizgi çizme
- 7. Ekran koordinatları bir 3D Noktadan nasıl alınır? Opengl
- 8. Bir polinomun tersini hesaplamak için algoritma
- 9. Her öğenin de bir dizi oluşturduğu bir dizi oluştur
- 10. Bir SCKSphere bir malzeme olarak bu görüntüyü kullanmak istediğiniz SCNSphere
- 11. ı ı tüm şirket için değerini değiştirmek için kullanabilir bir
- 12. Bir angularjs denetleyici sınaması için bir sahte hizmet enjekte etme
- 13. Bu işlev için algoritma karmaşıklığı
- 14. Matplotlib'de bir 3B yama koleksiyonu nasıl oluşturulur? örneğin, 1 yarıçaplı bir küre göstermek için -
- 15. Üç.js'deki bağlantıya tıklayarak küre döndürün
- 16. İlginç bir algoritma sorunu
- 17. Java'da Sphere koordinatlarının görüntülenmesi 3d
- 18. Blender ve PowerVR SDK kullanarak basit bir 3d küre nasıl oluşturulur SDK
- 19. Bir iPhone'u GPS koordinatları için sürekli olarak sorgulayabilir mi?
- 20. UWP 3D modeli bir
- 21. bir rgl 3d arsa
- 22. Bir kement seçim aracı uygulamak için algoritma?
- 23. .ico için ideal boyut
- 24. Bir ağaç ayrıştırma oluşturmak için algoritma
- 25. Bir görüntüdeki daireyi algılamak için algoritma
- 26. Bir kalabalığın içinde insanları saymak için algoritma
- 27. Küre yüzeyinde SceneKit yazınız mı?
- 28. Erlang için herhangi bir RSpec benzeri araç?
- 29. Bu Hash benzeri/Ağaç benzeri Yapı Nedir?
- 30. Javascript'in oluşturduğu bir metin kutusu için OnClick olayına nasıl bağlanır?
bu Ödev mi? –
hayır, öyle değil. kişisel bir proje için. – clamp
, bildiğim kadarıyla bir küre üzerindeki noktaların bir disko topu konfigürasyonu denir. en kolay yapılandırma. –