装配图高压均质机传动端的设计及运动仿真(1)
装配图高压均质机传动端的设计及运动仿真(1),装配,高压,均质机,传动,设计,运动,仿真
高压均质机传动端的设计及运动仿真
摘 要
本设计设计的是高压均质机动力端主要零件。首先,文章介绍了高压均质机的工作原理。流体在高压状态下通过细小缝隙时,会产生较大的剪切力、撞击力和空穴力,使流体中的固体颗粒破碎为微小颗粒,高压均质机就是利用这一原理工作的。接着,文章参考现有的均质机结构,确定了均质机主要结构参数,然后,按照高压往复泵的设计方法对高压均质机的主要零部件,如传动装置、曲轴、连杆等进行了结构设计。还有液力端泵阀的设计,并对其进行了相应的强度校核。最后,文章介绍了本次设计中还有高压均质机的运动仿真,采用了C语言程序,并对其进行了详细的说明。
关键词:高压均质机 食品机械 均质阀
目 录
摘要………………………………………………………………… 1
绪论………………………………………………………………… 4
第一章 均质机及其基本参数………………………………………… 5
1.1均质机的均质原理…………………………………………… 5
1.2均质机的工作原理…………………………………………… 5
1.3均质机的基本参数…………………………………………… 6
第二章 总体设计…………………………………………………… 9
2.1传动端结构形式的选择……………………………………… 9
2.2液力端结构形式的选择……………………………………… 9
2.3确定泵的主要结构参数……………………………………… 10
2.4原动机的选择……………………………………………… 12
第三章 动力端的设计计算………………………………………… 14
3.1传动装置的设计…………………………………………… 14
3.2曲轴的设计………………………………………………… 15
3.3连杆与其轴瓦………………………………………………… 15
3.4十字头……………………………………………………… 16
第四章 液力端零部件设计…………………………………………… 16
4.1泵阀设计……………………………………………………16
第五章 运动仿真………………………………………………………20
5.1 C语言程序简介…………………………………………………20
5.2传动端运动及程序………………………………………………20
设计小结………………………………………………………………32
致谢…………………………………………………………………33
参考资料……………………………………………………………… 34
绪 论
高压均质是一种制备超细液液乳化物或液固分散物的通用设备,被广泛应用与各行业的生产者和科技研领域。例:
一、 食品饮料行业:
豆奶、花生奶、松子奶等各种植物蛋白饮料。
核桃露、杏仁露、莲子露、椰子汁等各种悬浮果汁饮料。
酸奶、均质奶、纯牛奶、甜牛奶、乳酸饮料、冰淇淋、豆奶粉等各种乳品和乳制品。
二、 制药:
抗生素、各种乳剂、浆液制剂、中药制剂、花粉破碎及各种营养保健液。
三、 轻工化工行业:
香精香料、化妆品、乳化硅油、感光剂、增亮剂、高级涂料、颜料、染料等。
四、 生物工程技术:
对大肠杆菌、胞进行破碎,撮取其有效成分。
随着人民生活水平的提高,食品工业必将跟上时代的步伐,不仅要求食品本身的营养丰富,还对其质量、口味、外观、保存等提出了高标准,这样必然把食品工业推上一个新高潮。
食品品种繁多,本设计是主要应用于乳品工业中。它是一种特殊的高压泵,用于喷雾干燥设备中,可使液体分散成细微的雾滴,便于干燥成粉状。通过均质的炼乳、冰淇淋、代乳粉,液体中的分散项破裂成细微状态,可减少沉淀,增加粘稠性,口感细腻,并延长存放时间。均质机不仅在乳品工业和冰淇淋生产中得到广泛应用,而且还适用于医药、化工生产中。总之,在我国均质机发挥出的作用越来越大,因此需要人们对其进行深入的研究,以便设计生产。
本设计参考现有的均质机而设计,力求经济、结构合理,但肯定还有许多的不足之处,希望在老师和同学的帮助下,得到进一步的改进。
第1章 均质机及其基本参数
均质机是一种特殊的高压泵,利用高压的作用,使物料中的脂肪球的破裂到直径小于2m达99%。均质机由均质头和高压泵组成,即往复柱塞泵。它包括液力端和动力端。通过均质后的牛奶、脂肪球直径和所占比例均发生变化,如表1-1:
表1-1脱脂乳与均质乳中的脂肪球比较
脂肪球
()
脱脂乳
(﹪)
均质乳(﹪)
一段
二段
0~1
41.8
19.2
89.2
1~2
47.7
66.5
10.3
2~3
9.2
12.6
0.5
3~4
0.9
1.7
0
4~5
0.1
0
0
5~6
0
0
0
1.1均质机的均质原理
1.1.1剪切作用
流体在高速流动时,在均质机头隙缝处,产生剪切作用而均质。脂肪球通过三个柱塞往复泵吸入泵体时,在缝隙处先是被延展,同时又存在着液流通过均质阀时的涡动作用,使延展部分被剪切为更小的脂肪球微粒。又因为液流中存在着表面活性物质,它围绕在更细小的脂肪球微粒外层形成一种这些微粒不再互相粘合的膜.脂肪滴由此离开,而后面部分的还没有流进缝隙。当到达均质阀活门缝隙处时,会同样的剪切作用继续形成更小的脂肪球微粒。
1.1.2撞击学说
三联柱塞往复泵的高压作用使液体中脂肪球和均质阀发生高速撞击现象,因而使料液中的脂肪球破裂。
1.1.3空穴学说
因高压作用使料液高速流过均质阀缝隙处时,造成相当于高频振动的效果,能在瞬间引起空穴现象,使脂肪球碎裂。
在实际工作中,高压均质机的原理是以上几种学说的综合。
1.2均质机的工作原理
如图1-1所示,当高压液体通过阀的阀座和阀杆的狭窄通道时(可以用调节手柄调节间隙大小),使液料速度达150~300m/s,压力降低至液料汽化压力,使之形成气泡。当液料离开阀座门间
的间隙时,其速度降低,压力升高,导致气泡被压破,产生内爆,产生的空穴和高频振动使脂肪球颗粒破碎。此过程中,能量强烈释放,液料形成湍流,冲击冲击流,完成均质过程。
图1-1双级均质阀工作示意图
1.3均质机的基本参数
1.3.1瞬时流量
理论上,瞬时流量=工作腔容积变化率
如图1-2
图1-2
图1-3双缸泵的无因次流量曲线
图1-4 三缸泵的无因次流量曲线
q = A=Au=Ar(u)
(q)= = (u)
其中(q) -无因次瞬时流量;
(u)-无因次瞬时速度, (u)==-(sin+sin2)。
衡量流量脉动性的指标为不均匀系数==
单缸泵:B=3.14 ; 双缸泵:B/2=1.57 ;
三缸泵:B/3=1.04 ; 四缸泵:B1.1 ;
可以看出,四缸泵的脉动性反而比三缸泵有所增加,流量曲线如图1-3,图1-4。
1.3.2泵的压力
均质压力对脂肪球大小的影响如表1-2:
表1-2
压力(kgf/cm)
脂肪球直径()
平均直径()
0
1~18
3.71
35
1~14
2.39
70
1~7
1.68
105
1~4
1.40
141
1~3
1.08
176
1~3
0.99
211
0.5~2
0.76
随着压力的提高,脂肪球颗粒减少,考虑到制造工艺性、经济性,压力不宜太高,所以本机选180 kg f/cm。
1.3.3均质温度
均质与温度的关系如表1-3
表1-3
脂肪球直径()
20℃
40℃
65℃
0~1
2.3﹪
1.9﹪
4.3﹪
1~2
29.3﹪
36.7﹪
74.4﹪
2~3
23.3﹪
21.1﹪
9.0﹪
3~4
29.8﹪
25.2﹪
12.3﹪
4~5
-
15.2﹪
0
5~6
15.2﹪
0
0
表中可以看出,均质最佳温度为65℃。本设计要求料液温度为60~70℃,同时,可以提高密封圈效率。
1.3.4效率
理论流量与实际流量之间有一定的流量损失,即容积损失,它包括四部分:
流体的压缩或膨胀造成的△,
阀在关闭时滞后造成的△,
阀关闭不严造成的泄漏△,
柱塞与密封圈之间的泄漏△,
取=+++ =0.8
第2章 总体设计
2.1传动端结构形式的选择
传动端为从动力输入端到十字头为止的部件,包括机体、曲柄、连杆、曲轴、十字头及润滑冷却等辅助设备。
2.1.1曲轴
曲轴为整体浇铸体,材料为QT60-2,本机采用二支点 三拐式。三个曲柄相位角相差120º,曲柄与连杆之间轴瓦材料用20%锡铝合金。
确定曲轴半径时考虑到两个方面的问题.较小时,强度、刚度无法满足,挠度、转角增加;较粗大时,要考虑加工挠性问题。
曲拐的运动顺序为一、三、二。第一曲拐转角=,第二曲拐转角=+240,第三曲拐=+120。这可以使偏角大致相等,力求使机械惯性力和惯性力矩得到平衡,减轻对基础的饿挠性载荷。
2.1.2连杆
连杆大头采用剖分式,用特制定位螺栓定位,扣紧螺母防松,小头定位。是浇铸件,材料为QT60-2。连杆体和大小头中开油槽,油孔,来润滑曲柄和十字头。
根据总体结构选=r/l=0.0625。
2.1.3轴承
有冲击载荷,适宜选用滚子轴承。
2.1.4十字头
整体铸件,材料ZG35。
2.1.5传动方式选择
采用一级带传动。
2.2液力端结构形式的选择
液力端是从柱塞一直到泵进出口管接头的部件,是介质的过流部分,包括液体缸、柱塞和密封件、吸排液阀组件、缸盖、阀箱盖。
在选择液力端结构形式时,应遵循下述基本要求:
a 过流性能好,水力阻力损失小,为此,液流通道应力求短而直,尽量逃避拐弯和急剧的断面变化;
b 液流通道应利于气体排出,不允许有死区,造成气体滞留。通常,吸入阀应置于液缸体顶部;
c 吸入阀和排出阀一般应该垂直布置,以利于阀板正常起闭和密封;
d 余隙容积应尽可能的小,尤其是对高压短程泵;
e 易损件寿命长,更换方便;
f 制造工艺性好。
2.2.1泵体
卧式三联单作用泵的泵体为一整体式长方体不锈钢块锻造,材料为1Cr18Ni9Ti,其刚性好,工作腔间距小,机加工量小,吸排出阀布置为直通式三通体。其优点为过流性能好,余隙容积较小,结构紧凑,尺寸小,柱塞虽然不可以从液缸前塞处装拆,但T型孔加工工艺性好。
2.2.2柱塞
柱塞材料为3Cr13,表面经高频淬火,再精密加工和磨光,具有等硬度和光洁度的表面,有较高的耐磨性和防腐性。因为直径小,采用实心结构,加工简单。为不使柱塞发热,保证设备正常运转,柱塞上冷却水不可断。柱塞与十字头之间采用平面连接,结构简单,加工方便,易于装拆。
2.2.3均质阀
均质阀借调整螺旋弹簧对阀心的压力,得到调整流体压力的作用。在双级均质阀中,第一级流体压力为18MPa,主要使脂肪球破碎,第二级压力减至2.7MPa,主要使脂肪球均匀分散。
本机用手动轮直接控制压力,操作方便,体积减小。
均质头制造成两面均可使用的圆柱形结构,加工方便,使用寿命长。
2.3确定泵的主要结构参数
2.3.1活塞平均速度U的选择
U的大小直接影响泵各运动副零部件的摩擦和磨损,特别是对柱塞及其密封的影响尤为显著。U过大则摩擦和磨损严重,会造成泄漏,流量下降,排出压力也不能达到额定值。U过小则液力端径向尺寸增加,传动端受力也增加从而使泵的总体尺寸和重量增加。一般可根据经验公式得到U的定量选取范围:
U= K Nm/s
式中 U—柱塞平均速度,m/s;
K—统计系数,液压机用三联或多联机动泵一般为0.21~0.70;
N—折合成单联单作用泵的有效功率,kw。
N=( p- p) Q / [612Z (k+1)]
≈pQ/ [612Z(k+1)] kw
式中 Q—泵的流量,l/min
p—泵的排出压力,kg f/cm;
p—泵的吸入压力,kg f/cm;
当p> p或p为常压时,全压力p– p≈p。
Z—泵的联数(柱塞数);
K—系数,K-1= A/A,K=0,对双作用泵,A/A<1,0
#include
#define PI 3.1415926
int xa=70,ya=270,xb,yb,xc,yc,xd=183,yd=270,xe,ye,xf,yf=75;
double lalfa,lalfa1=360.0;
double lab=50.5,lbc=108.75,lcd=112.5,lad=112.5,lde=225,lef=315,lb=195;
double A,B,C,ac,a3,omiga1=5.236,omiga2,omiga3,omiga4,sc,vc;
double alfa1,alfa2,alfa3,alfa4,alfa5;
double ab=67.5,bc=145,cd=150,ad=150,de=300,ef=420,b=260;
int alfa=0,l=300,m=100,xxc,yxc,xvc,yvc,xac,yac;
/***************************************************************************/
void set_angle()
{lalfa1-=10;
if(lalfa1<0)
lalfa1=lalfa1+360;
lalfa=PI*lalfa1/180;
}
void draw_link()
{int i;
float A,B,C,l;
double thita,gama;
A=ad-ab*cos(lalfa);
B=-ab*sin(lalfa);
C=(A*A+B*B+cd*cd-bc*bc)/(2*cd);
thita=2*atan((B+sqrt(A*A+B*B-C*C))/(A-C));
if(thita<0)
thita+=PI;
xb=(int)(lab*cos(lalfa))+xa;
yb=ya-(int)(lab*sin(lalfa));
xc=xd+(int)(lcd*cos(thita));
yc=yd-(int)(lcd*sin(thita));
gama=thita-0.5;
xe=(int)(lde*cos(gama))+xd;
ye=yd-(int)(lde*sin(gama));
l=lde*sin(gama)-lb;
xf=(int)(sqrt(lef*lef+l*l))+xe;
setbkcolor(BLUE);
setcolor(RED);
setlinestyle(0,0,3);
moveto(xa,ya);
lineto(xb,yb);
lineto(xc,yc);
lineto(xd,yd);
lineto(xe,ye);
lineto(xf,yf);
line(xc,yc,xe,ye);
setcolor(15);
setlinestyle(0,0,0);
circle(xa,ya,5);
floodfill(xa,ya,WHITE);
circle(xd,yd,5);
floodfill(xd,yd,WHITE);
circle(xb,yb,3);
floodfill(xb,yb,WHITE);
circle(xc,yc,3);
floodfill(xc,yc,WHITE);
circle(xe,ye,3);
floodfill(xe,ye,WHITE);
moveto(xa,ya);
lineto(xa-10,ya+10);
lineto(xa+10,ya+10);
lineto(xa,ya);
line(xa-15,ya+10,xa+15,ya+10);
for(i=4;i<=30;i+=4)
line(xa-15+i,ya+10,xa-15+i-3,ya+15);
moveto(xd,yd);
lineto(xd-10,yd+10);
lineto(xd+10,yd+10);
lineto(xd,yd);
line(xd-15,yd+10,xd+15,yd+10);
for(i=4;i<=30;i+=4)
line(xd-15+i,yd+10,xd-15+i-3,yd+15);
bar((xf-10),(yf+6),(xf+10),(yf-6));
line(375,yf+6,640,yf+6);
for(i=0;i<260;i+=8)
line(380+i,yf+6,380+i-3,yf+11);
/*line(0,310,640,310);
line(200,0,200,480);*/
}
void set_text()
{setcolor(YELLOW);
settextstyle(4,0,5);
/* outtextxy(180,200,"MADE BY SPHINX!");*/
outtextxy(250,250,"2000.5.18");
}
links()
{int graphdriver=VGA,graphmode=VGAMED;
initgraph(&graphdriver,&graphmode," ");
do
{setactivepage(1);
clearviewport();
set_angle();
draw_link();
set_text();
setvisualpage(1);
setactivepage(0);
clearviewport();
set_angle();
draw_link();
set_text();
setvisualpage(0);
}while(!kbhit());
getch();
closegraph();
}
/**************************************************************************/
set_c()
{A=ad-ab*cos(alfa1);
B=-ab*sin(alfa1);
C=(A*A+B*B+cd*cd-bc*bc)/(2*cd);
alfa3=2*atan((B+sqrt(A*A+B*B-C*C))/(A-C));
if(alfa3<0)
alfa3+=PI;
alfa2=atan((B+cd*sin(alfa3))/(A+cd*cos(alfa3)));
if(alfa2<0)
alfa2+=PI;
omiga3=omiga1*(ab*sin(alfa1-alfa2))/(bc*sin(alfa3-alfa2));
omiga2=-omiga1*(ab*sin(alfa1-alfa3))/(cd*sin(alfa2-alfa3));
alfa4=alfa3-0.5236;
alfa5=asin((b-de*sin(alfa4))/ef)+2*PI;
if(alfa5<0)
alfa5+=PI;
omiga4=-(de*omiga3*cos(alfa4))/(ef*cos(alfa5));
a3=(bc*omiga2*omiga2+ab*omiga1*omiga1*cos(alfa1-alfa2)-cd*omiga3*omiga3*cos(alfa3-alfa2))/(cd*sin(alfa3-alfa2));
xc=(de*cos(alfa4)+ef*cos(alfa5))/2;
vc=-((-de*omiga3*sin(alfa4-alfa5))/cos(alfa5))/10;
ac=(-(de*(a3*sin(alfa4-alfa5)+omiga3*omiga3*cos(alfa4-alfa5))+ef*omiga4*omiga4)/cos(alfa5))/100;
}
draw_x()
{int i;
setcolor(WHITE);
line(0,l,640,l);
line(m,0,m,480);
line(360+m,0,360+m,480);
line(m,0,m-8,20);
line(m,0,m+8,20);
line(640,l,620,l-8);
line(640,l,620,l+8);
for(i=m;i<=620;i+=30)
line(i,l,i,l+6);
xxc=(int)(alfa+m);
yxc=-(int)(70-xc);
/*if(yxc<64)
yxc=yxc+64;
if(yxc>64)
yxc=yxc-64;*/
setcolor(RED);
lineto(xxc,yxc);
}
draw_v()
{xvc=(int)(alfa+m);
yvc=(int)(l-vc);
setcolor(YELLOW);
lineto(xvc,yvc);
}
draw_a()
{xac=(int)(alfa+m);
yac=(int)(l-ac);
setcolor(GREEN);
lineto(xac,yac);
}
chart()
{int graphdriver=VGA,graphmode=VGAHI;
initgraph(&graphdriver,&graphmode," ");
moveto(m,l);
setbkcolor(BLACK);
do
{alfa1=alfa*PI/180;
set_c();
draw_x();
alfa=alfa+1;
}while(alfa<=540);
moveto(m,l);
alfa=0;
do
{alfa1=alfa*PI/180;
set_c();
draw_v();
alfa=alfa+1;
}while(alfa<=540);
moveto(m,l);
alfa=0;
do
{alfa1=alfa*PI/180;
set_c();
draw_a();
alfa=alfa+1;
}while(alfa<=540);
setfillstyle(1,RED);
bar(5,450,25,460);
settextstyle(0,0,2);
setcolor(RED);
outtextxy(30,446,"displacement");
setfillstyle(1,YELLOW);
bar(240,450,260,460);
settextstyle(0,0,2);
setcolor(YELLOW);
outtextxy(265,446,"velocity");
setfillstyle(1,GREEN);
bar(410,450,430,460);
settextstyle(0,0,2);
setcolor(GREEN);
outtextxy(435,446,"acceleration");
setcolor(WHITE);
line(m,0,m,480);
setlinestyle(3,0,1);
line(m,64,m+255,64);
line(m,216,m+45,216);
line(m,225,m+120,225);
settextstyle(0,0,0);
outtextxy(m-45,64,"570(x)");
outtextxy(m-45,216,"270(x)");
outtextxy(m-45,225,"856(v)");
outtextxy(m-60,430,"-1545(v)");
/*******drawzb******/
outtextxy(m-6,l+8,"0");
outtextxy(m+24,l+8,"30");
outtextxy(m+54,l+8,"60");
outtextxy(m+84,l+8,"90");
outtextxy(m+114,l+8,"120");
outtextxy(m+144,l+8,"150");
outtextxy(m+174,l+8,"180");
outtextxy(m+204,l+8,"210");
outtextxy(m+234,l+8,"240");
outtextxy(m+264,l+8,"270");
outtextxy(m+294,l+8,"300");
outtextxy(m+324,l+8,"330");
outtextxy(m+354,l+8,"360");
outtextxy(m+384,l+8,"390");
outtextxy(m+414,l+8,"420");
outtextxy(m+444,l+8,"450");
outtextxy(m+474,l+8,"480");
outtextxy(m+504,l+8,"510");
setlinestyle(0,0,0);
/*line(355,0,355,480);
line(145,0,145,480);*/
getch();
closegraph();
}
/***********************************************************************/
double vac,valfa1,valfa2,vomiga1=5.236,vomiga2,vxc,vvc;
double vab,vbc,vb;
int vjust,valfa=0,vl=300,vm=100,vxxc,vyxc,vxvc,vyvc,vxac,vyac;
vset_c()
{valfa2=asin((vb-vab*sin(valfa1))/vbc);
/* if(alfa2<0)
alfa2+=PI;*/
vomiga2=-vomiga1*vab*cos(valfa1)/(vbc*cos(valfa2));
vxc=(vab*cos(valfa1)+vbc*cos(valfa2))/2;
vvc=(-vomiga1*vab*sin(valfa2-valfa1)/cos(valfa2))/10;
vac=((-vab*vomiga1*vomiga1*cos(valfa1-valfa2)+vbc*vomiga2*vomiga2)/cos(valfa2))/50;
}
vdraw_x()
{int i;
setcolor(WHITE);
line(0,vl,640,vl);
line(vm,0,vm,480);
line(360+vm,0,360+vm,480);
line(vm,0,vm-8,20);
line(vm,0,vm+8,20);
line(640,vl,620,vl-8);
line(640,vl,620,vl+8);
for(i=vm;i<=620;i+=30)
line(i,vl,i,vl+6);
vxxc=(int)(valfa+vm);
if(vjust==1)
vyxc=-(int)(vl-vxc);
if(vjust==2)
vyxc=-(int)(70-vxc);
/*if(yxc<64)
yxc=yxc+64;
if(yxc>64)
yxc=yxc-64;*/
setcolor(RED);
lineto(vxxc,vyxc);
}
vdraw_v()
{vxvc=(int)(valfa+vm);
vyvc=(int)(vl-vvc);
setcolor(YELLOW);
lineto(vxvc,vyvc);
}
vdraw_a()
{vxac=(int)(valfa+vm);
vyac=(int)(vl-vac);
setcolor(GREEN);
lineto(vxac,vyac);
}
vchart()
{int graphdriver=VGA,graphmode=VGAHI;
printf("Please Chose The 1:L1=150,L2=955.5,b=0, omiga1=50r/min\n");
printf(" or 2:L1=101,L2=433,b=260, omigal=50r/min\n");
printf("HaHa,Which one do you chose??? :-)\n");
scanf("%d",&vjust);
if(vjust==1)
{vab=150;vbc=955.5;vb=0;}
if(vjust==2)
{vab=101;vbc=433;vb=260;}
initgraph(&graphdriver,&graphmode," ");
moveto(vm,vl);
setbkcolor(BLACK);
valfa=0;
do
{valfa1=valfa*PI/180;
vset_c();
vdraw_x();
valfa=valfa+1;
}while(valfa<=540);
moveto(vm,vl);
valfa=0;
do
{valfa1=valfa*PI/180;
vset_c();
vdraw_v();
valfa=valfa+1;
}while(valfa<=540);
moveto(vm,vl);
valfa=0;
do
{valfa1=valfa*PI/180;
vset_c();
vdraw_a();
valfa=valfa+1;
}while(valfa<=540);
setfillstyle(1,RED);
bar(5,450,25,460);
settextstyle(0,0,2);
setcolor(RED);
outtextxy(30,446,"displacement");
setfillstyle(1,YELLOW);
bar(240,450,260,460);
settextstyle(0,0,2);
setcolor(YELLOW);
outtextxy(265,446,"velocity");
setfillstyle(1,GREEN);
bar(410,450,430,460);
settextstyle(0,0,2);
setcolor(GREEN);
outtextxy(435,446,"acceleration");
setcolor(WHITE);
line(vm,0,vm,480);
/*setlinestyle(3,0,1);
line(m,64,m+255,64);
line(m,216,m+45,216);
line(m,225,m+120,225);*/
settextstyle(0,0,0);
/*outtextxy(m-45,64,"570(x)");
outtextxy(m-45,216,"270(x)");
outtextxy(m-45,225,"856(v)");
outtextxy(m-60,430,"-1545(v)");*/
/*******drawzb******/
outtextxy(vm-6,vl+8,"0");
outtextxy(vm+24,vl+8,"30");
outtextxy(vm+54,vl+8,"60");
outtextxy(vm+84,vl+8,"90");
outtextxy(vm+114,vl+8,"120");
outtextxy(vm+144,vl+8,"150");
outtextxy(vm+174,vl+8,"180");
outtextxy(vm+204,vl+8,"210");
outtextxy(vm+234,vl+8,"240");
outtextxy(vm+264,vl+8,"270");
outtextxy(vm+294,vl+8,"300");
outtextxy(vm+324,vl+8,"330");
outtextxy(vm+354,vl+8,"360");
outtextxy(vm+384,vl+8,"390");
outtextxy(vm+414,vl+8,"420");
outtextxy(vm+444,vl+8,"450");
outtextxy(vm+474,vl+8,"480");
outtextxy(vm+504,vl+8,"510");
setlinestyle(0,0,0);
/*line(355,0,355,480);
line(145,0,145,480);*/
getch();
closegraph();
}
/******************************************************************/
int xx1=100,yy1=150,xx2,yy2,xx3,yy3=150;
double _alfa=0,_alfa1;
double _ab=50,_bc=320,_b;
void _setangle()
{_alfa+=10;
if(_alfa>360)
_alfa=_alfa-360;
_alfa1=PI*_alfa/180;
}
void _drawlink()
{double l,i;
xx2=(int)(_ab*cos(_alfa1))+xx1;
yy2=yy1-(int)(_ab*sin(_alfa1));
l=2*_ab*cos(_alfa1);
xx3=(int)((l+sqrt(l*l-4*(_ab*_ab-_bc*_bc)))/2)+xx1;
setbkcolor(BLUE);
setcolor(RED);
setlinestyle(0,0,3);
moveto(xx1,yy1);
lineto(xx2,yy2);
lineto(xx3,yy3);
setcolor(15);
setlinestyle(0,0,0);
lin
收藏