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