主要用到 plot(x,y) 函数,但是这里得分两种情况。
如果你提供的齿轮周边点足够多,那么只用 plot(x,y) 函数,即可画出完整的齿轮轮廓。我这里说的足够多,是所有已知点直线相连便可完整的描述齿轮轮廓。
提供点并不足够多,直接把点连线得不到轮廓。这宽坦敏时,需要先用别的函数把信物齿轮轮廓上的点算出来,再用 plot 函数。这就要看最初提供的是哪些点了。慎枝
只要掘蠢团有齿轮齿廓曲面方程,就可以画出三维齿廓。一般画三维图的方法是x=[。。。]
y=[。。。]
[X,Y]=meshgrid(x,y) %曲面网格化档核
Z=f(X,Y) %根据曲面方程求出Z值
mesh(X,Y,Z) %绘制判橘三维图
这个代码有点错误,可能是你的代码少复制了一句。按我的理解解释了一下,希望对你有所帮助。function varargout = jkx(varargin) %该界面的主函数,通过此函数调用matlab的gui主函数
gui_Singleton = 1
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @jkx_OpeningFcn, ...
'gui_OutputFcn', @jkx_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', [])
if nargin &isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1})
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:})
else
gui_mainfcn(gui_State, varargin{:})
end
function jkx_OpeningFcn(hObject, eventdata, handles, varargin) %界面窗口的设置
handles.output = hObject
guidata(hObject, handles)
set(gcf,'name','标准直齿圆柱齿轮渐开线饥亮参数输入窗烂旦宽口')%设置界面窗口的名字。
function varargout = jkx_OutputFcn(hObject, eventdata, handles)%打开界面窗口时的一些初始设置,比如可以加入javaFrame = get(gcf,'JavaFrame') set(javaFrame,'Maximized',1)使界面运行时就最大化。
varargout{1} = handles.output
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'迟毁BackgroundColor','white')
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
end
function edit1_Callback(hObject, eventdata, handles)%添加可编辑文本框,可以通过set(handles.edit1,'属性名','属性值'……)设置其属性,包括显示的东西
function edit2_CreateFcn(hObject, eventdata, handles)%同上
set(hObject,'BackgroundColor','white')%设置edit2的背景色
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))%获得默认控件的背景色给当前控件
end
function edit2_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white')
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
end
function edit3_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white')
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
end
function edit4_Callback(hObject, eventdata, handles)
function pushbutton1_Callback(hObject, eventdata, handles)%添加按钮,在下面可以给出他的响应函数
figure%点击按钮新建一个figure.
set(gcf,'name','渐开线齿廓')%设置当前界面的名字
m=str2num(get(handles.edit1,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量m,
z=str2num(get(handles.edit2,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量z,
a=str2num(get(handles.edit3,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量a,
ha=str2num(get(handles.edit6,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量ha,
ra=m*(0.5*z+ha)%计算出ra
%齿顶圆半径
rb=0.5*m*z*cos(a*pi/180)
%基圆半径
rk=rb:0.01:ra
%向径范围
aa=atan(sqrt((ra.^2/rb.^2)-1))
%齿顶圆上的压力角
wk=tan(aa)-aa
%齿顶圆上的展角
w=0:pi/180:pi/3
x=rb*(cos(w)+w.*sin(w))
y=rb*(sin(w)-w.*cos(w))
plot(x,y,rb*cos(0:0.01:2*pi),rb*sin(0:0.01:2*pi),ra*cos(0:0.01:2*pi),ra*sin(0:0.01:2*pi))%画出图像
xlabel('x 轴 单位:mm','fontsize',9)%设置坐标轴属性,名称,字符大小为9
ylabel('y 轴 单位:mm','fontsize',9)%设置坐标轴属性,名称,字符大小为9
axis equal%调节图形的纵横比,和axis('square')功能一样使屏幕上的x和y的比例尺相同。
title('标准直齿轮渐开线轮廓(基圆与齿顶圆之间的部分为该齿轮的渐开线)','fontsize',11)%图形标注,图形名称,字体大小 为11
text(ra*cos(pi/4),ra*sin(pi/4),'\leftarrow齿顶圆','fontsize',10)%添加静态文本框,显示计算结果+‘\leftarrow齿顶圆’,文本框的字体大小为10。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)