2016-08-27 5 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

しかし、私は100点を生成したい – 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

関連する問題