%% 黄金分割螺旋线
function myhelix
clear
clc
close all
% 用户螺旋线参数
K=1; % 螺旋线缩放比例因子
devTheta=pi;
devCicle=[0,0];
Nd=5; % 考察圆弧段数,Nd>3
addTheta= -pi/3; % 在最后一段圆弧延续或截断适当角度以便美观
Nset=6; Nset=max(4,Nset); % 每段圆弧坐标采用点密度基数
% 基准螺旋线参数
[x,y,p,r,q] =goldhelix;
[x,y] =goldhelix(Nd,Nset);
% 用户螺旋线参数
[x1,y1]=goldhelix(Nd,Nset, [],0,devCicle);
[x2,y2]=goldhelix(Nd,[], [],2*pi/3,[]);
figure % 缩比后螺旋线绘图
plot(x1,y1, x2,y2),hold on
grid on
axis equal
end
%
%% %%%%%%%%%%%%%%
%% 计算螺旋线
%% %%%%%%%%%%%%%%
function [x,y,p,r,Q]=goldhelix(Nd,Nset, K,devTheta,devCicle,addTheta)
%
% =======================
% 缺省参数赋默认值
if 0==exist('Nd','var') || isempty(Nd), Nd=5; end
if 0==exist('Nset','var') || isempty(Nset), Nset=5; end
if 0==exist('K','var') || isempty(K), K=1;