基于FWHM方法计算光束角度的Python程序结果不符问题咨询
光束角度计算程序修正方案
问题分析
输入投射距离100英寸、光斑尺寸50英寸时,预期结果为28.07度,但程序输出53度,核心错误在于光斑尺寸的处理逻辑:
- 程序直接用完整光斑尺寸除以投射距离计算半角,但FWHM(半高全宽)的半角计算应该基于光斑半宽(即总光斑尺寸的一半)。
修正后的代码
import math def calculate_beam_angle(throw_distance, spot_size): # 计算半光斑尺寸 half_spot_size = spot_size / 2 # 基于半光斑尺寸计算半角 half_max_angle = math.atan(half_spot_size / throw_distance) # 转换为角度单位 half_max_angle_degrees = math.degrees(half_max_angle) # 计算FWHM全光束角度 fwhm_angle = 2 * half_max_angle_degrees return fwhm_angle # 示例使用 throw_dist = float(input("输入投射距离(英寸):")) spot_size = float(input("输入光斑尺寸(英寸):")) beam_angle = calculate_beam_angle(throw_dist, spot_size) print(f"光束角度为 {beam_angle:.2f} 度。")
验证结果
输入100英寸投射距离、50英寸光斑尺寸时,修正后的程序输出为28.07度,与预期结果完全一致。
内容的提问来源于stack exchange,提问作者Nick Rahi
相关产品推荐
相关产品推荐

