Main Code
parent
bf7df81e22
commit
bb2ae96e95
|
@ -0,0 +1,35 @@
|
|||
import numpy as np
|
||||
|
||||
rng = np.random.default_rng()
|
||||
|
||||
x_dim = 7
|
||||
y_dim = 7.3
|
||||
|
||||
d = 20.6 - 6.8 - 7 - 2.5
|
||||
|
||||
def generate_ray():
|
||||
x_start = rng.uniform(0, x_dim)
|
||||
y_start = rng.uniform(0, y_dim)
|
||||
|
||||
phi = rng.uniform(0, 1) * 2 * np.pi
|
||||
theta = np.arccos(np.sqrt(rng.uniform(0, 1)))
|
||||
|
||||
x_final = x_start + np.cos(phi) * d * np.tan(theta)
|
||||
y_final = y_start + np.sin(phi) * d * np.tan(theta)
|
||||
|
||||
return (0 <= x_final and x_dim >= x_final and 0 <= y_final and y_dim >= y_final)
|
||||
|
||||
|
||||
num = 1000000
|
||||
|
||||
count_in = 0
|
||||
|
||||
for i in range(num):
|
||||
if generate_ray():
|
||||
count_in += 1
|
||||
|
||||
|
||||
print(count_in)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue