如何用matlab画出正螺面,matlab中的螺旋网格

本文介绍如何使用MATLAB生成正螺面的图形。作者在尝试创建计算机生成的全息图时,遇到边缘模糊的问题。通过尝试极坐标网格和螺旋网格,希望能改善效果。代码示例中展示了生成螺旋网格的过程,但仍然存在边缘不理想的问题。
摘要由CSDN通过智能技术生成

我正在尝试使用MATLAB生成一些计算机生成的全息图.我使用等距网格来初始化空间网格,我得到了下面的图像

除中心区域外,这种模式是我需要的.边缘应该是锐利但模糊的.我认为这可能是网格的问题.我尝试在极坐标中生成一个网格,并使用MATLAB的pol2cart函数将其映射到笛卡尔坐标.不幸的是,它不起作用.人们可能会建议使用精细网格.它也不起作用.我想如果我能生成一个螺旋网格,也许这个问题是可以解决的.另外,螺旋臂的数量通常是任意的,任何人都可以给我一个暗示吗?

我附上了代码(我的最终项目并不完全相同,但它有类似的问题).

clc; clear all; close all;

%% initialization

tic

lambda = 1.55e-6;

k0 = 2*pi/lambda;

c0 = 3e8;

eta0 = 377;

scale = 0.25e-6;

NELEMENTS = 1600;

GoldenRatio = (1+sqrt(5))/2;

g = 2*pi*(1-1/GoldenRatio);

pntsrc = zeros(NELEMENTS, 3);

phisrc = zeros(NELEMENTS, 1);

for idxe = 1:NELEMENTS

pntsrc(idxe, :) = scale*sqrt(idxe)*[cos(idxe*g), sin(idxe*g), 0];

phisrc(idxe) = angle(-sin(idxe*g)+1i*cos(idxe*g));

end

phisrc = 3*phisrc/2; % 3 arms (topological charg

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值