2016-08-27 22 views
-1

我有一個扁平球體x^2 +(0.01)y^2 + z^2 = 1。我想在Matlab中找到這個球體上的點。請幫助我是新的。任何人都可以幫助我找到扁平球體上的點

+0

那麼怎麼樣'X = 0,Y = 0, Z = 1'?或者'x = 0,y = -10,z = 0'? – user268396

+1

一般來說,這種方法是在x,y,z的上邊界和下邊界之間生成隨機座標,然後看哪一個滿足方程。不幸的是浮點和測試的平等性不太好。 – user268396

+0

但是我想要生成上百個點 – Murtaza

回答

1

該對象被稱爲橢球體。基本上,您可以採用與採樣球體相同的方式對其表面進行採樣。如果你想保持一定的密度分佈,這可能會變得更加困難。但是,如果你只是想要一些分佈,這裏是你如何能做到這一點:

phi := random number in [-pi, pi] 
theta := random number in [-pi/2, pi/2] 
x = sin phi cos theta 
y = cos phi cos theta/sqrt(0.01) 
z = sin theta 

對於指定的缸,你會怎麼做:

phi := random number in [-pi, pi] 
h := random number for the y-values 
x = sin phi * sqrt(1.4) 
y = h 
z = cos phi * sqrt(1.4) 
+0

然後我如何分配缸x^2 + z^2 = 1.4 – Murtaza

相關問題