Zemax 点列图

Zemax 软件的安装

在这里插入图片描述

入门教程

入门教程

新建文件

在这里插入图片描述

插入镜头

在这里插入图片描述

标准六边形点列图

在这里插入图片描述

六边形标准点列图的规律

我们可以看到,六边形的光线密度决定了一共有多少圈,半径按照等间隔的增量增加,每一圈的点均匀分布,点数满足下面的数列:

[1,6,12,18,……]

满足下面的公式

N ( 1 ) = 1 , n = 1 ; N ( n ) = 6 ( n − 1 ) , n > 1 N(1) =1, n=1; \\ N(n) = 6 (n-1) ,n>1 N(1)=1,n=1;N(n)=6(n1),n>1

Matlab 程序

classdef g_PointSource< handle
    %几何光学光源
    %   此处显示详细说明    
    properties
        lambda;%波长   
        beam_out;%输出光束
    end
    
    methods
        function obj=g_PointSource(XX,YY,rangeThetaR,nr,lambda)
            % 产生均匀分布的光
            % ntheta 的角度是相对于 X的角度
            obj.lambda=lambda; % lambda 0 
            nr = round(abs(nr)); % nr 必需是正整数
            r         = linspace(0,rangeThetaR,nr); % 等间距分割 r  
            Ntehta = zeros(1,nr); % 每一圈的点数 初始化

            for i =1:length(r)
                if i <=1
                         Ntehta(i) =1;
               else
                        Ntehta(i) = 6*(i-1);  
               end 
            end             
           % 计算每一圈的点数

            RNew = zeros(1,sum(Ntehta));
            ThetaNew =RNew;
         % 初始化散点总数

            C      = cumsum(Ntehta); % 总的散点数
            Wstart = C-Ntehta+1;    % 初始坐标
            Wend   = C;            % 结束坐标
            for i = 1:length(r)
             RNew(Wstart(i):Wend(i)) = r(i); % r 值坐标
             ThetaNew(Wstart(i):Wend(i)) = linspace(0,2*pi*(Ntehta(i)-1)/Ntehta(i),Ntehta(i)); % Theta角坐标
            end

         
            Phi       = RNew.*cos(ThetaNew);  % 和水平方向的夹角
            Psi       = RNew.*sin(ThetaNew); % 和垂直方向的夹角

            phi = Phi(:)';
            psi = Psi(:)';       
             lambdan=psi*0+lambda;
             XX = phi*0+XX;
             YY = phi*0+YY;
             obj.beam_out= g_beam(XX,YY,phi,psi,lambda,lambdan); %通过以上数据产生光束
        end
    end
    
end


绘图程序

addpath("../Furion_version_1.9_simplfied/optical_element/");
addpath("../Furion_version_1.9_simplfied/display/");
lambda = 1e-9;
b1 = g_PointSource(0,0,60e-6,6,lambda).beam_out;
b1= b1.translation(0.1);
a = ClassPlot();
a.Scatter(b1.XX,b1.YY);

git

代码更新

绘制结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值