有限元分析中的二维Delaunay三角网格剖分代码实现Word下载.docx
- 文档编号:16146392
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:16
- 大小:17.95KB
有限元分析中的二维Delaunay三角网格剖分代码实现Word下载.docx
《有限元分析中的二维Delaunay三角网格剖分代码实现Word下载.docx》由会员分享,可在线阅读,更多相关《有限元分析中的二维Delaunay三角网格剖分代码实现Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
structd_t_node
triangleTnode;
d_t_node*Pt_l[3];
intposition_in_dt;
intzhuangtai_when_new;
pointp1,p2,p3,p4;
intn;
pointp[point_size];
intdt_last=0;
pointp_in_dtriangle1[point_size+1];
d_t_nodeDtriangle[point_size];
pointp_in_dtriangle2[point_size+1];
d_t_node*queue_t[point_size];
pointp_in_dtriangle3[point_size+1];
intps_last=0;
intqueue_t_last=0;
pointget_spoint_cin(point*p,intn);
pointget_spoint_rank(point*p,intn);
voidget_spoint_squre(point*p,int);
voidget_spoint_cir(point*,int);
voidread_spoint(point*p,intn);
voidDisplay();
voidinit_D_triangle(d_t_node*D_tr);
voidPjoin_ps(point*ps,point*p_new,intps_last);
voidpjion_D_triangle(d_t_node*Dtriangle,int&
dt_last,pointp_new);
intfindt_clude_p(d_t_node*Dtriangle,intdt_last,pointp_new);
voidsort_to_line(pointline_of_tr[point_size][2],intline_of_lin[point_size],intthis_fh_when_new[point_size][2],intline_of_tr_last);
floathls(floata,floatb,floatc,floatd);
pointget_o(pointp1,pointp2,pointp3);
floatlong_of_lines(pointpoint1,pointpoint2);
boolp_in_q(d_t_node**queue,pointp_new);
voidput_bug(d_t_node);
voidput_this(intpsize[point_size][2],intlast);
voidread_triangle(d_t_nodeDtriangle[point_size]);
voidput_out_line(pointline_of_tr[point_size][2],intline_of_tr_last);
intmain(intargc,char*argv[])
for(intii=0;
ii<
point_size;
ii++)
{
for(intjj=0;
jj<
3;
jj++)
{
switch(jj)
{
case0:
Dtriangle[ii].Tnode.Pv[jj]=&
p_in_dtriangle1[ii+1];
break;
case1:
p_in_dtriangle2[ii+1];
case2:
p_in_dtriangle3[ii+1];
}
}
};
//点集为圆上的点,输入圆的个数
/*intm;
cin>
>
m;
n=m*36+1;
get_spoint_cir(p,m);
*/
//点集为正方形网格的交点,输入网格的行数
n=m*m;
get_spoint_squre(p,m);
//点集为随机生成的点,输入点的数量
cout<
<
"
请输入点数大小n="
;
n;
get_spoint_rank(p,n);
glutInit(&
argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(300,300);
glutCreateWindow("
第一个OpenGL程序"
);
glColor3f(0.0,0.0,1.0);
init_D_triangle(Dtriangle);
for(inti=0;
i<
i++)
pjion_D_triangle(Dtriangle,dt_last,p[i]);
}
glClearColor(1.0,1.0,1.0,1.0);
glutDisplayFunc(Display);
glutMainLoop();
return0;
voidget_spoint_cir(point*p,intnn)
floatr;
p[0].x=0.5;
p[0].y=0.5;
//intxi,xii;
for(intiii=0;
iii<
nn;
iii++)
//xi=nn-1;
xii=xi-iii;
r=(float(iii)+1.0)*0.5/float(nn+1);
for(intjjj=0;
jjj<
36;
jjj++)
p[iii*36+jjj+1].x=float(r*cos(float(jjj)*pi/18.0))+0.5;
p[iii*36+jjj+1].y=float(r*sin(float(jjj)*pi/18.0))+0.5;
voidget_spoint_squre(point*p,intnn)
for(intj=0;
j<
j++)
p[i*nn+j].x=float(j+1.0)/float(nn+1),
p[i*nn+j].y=float(i+1.0)/float(nn+1);
voidput_out_line(pointline_of_tr[point_size][2],intline_of_tr_last)
line_of_tr_last;
("
line_of_tr[i][0].x<
"
line_of_tr[i][0].y<
)->
"
line_of_tr[i][1].x<
line_of_tr[i][1].y<
)"
}cout<
endl;
voidread_triangle(d_t_nodeDtriangle[point_size])
dt_last;
glBegin(GL_LINE_LOOP);
glVertex2f((Dtriangle[i].Tnode.Pv[0]->
x-0.5)*2.0,(Dtriangle[i].Tnode.Pv[0]->
y-0.5)*2);
glVertex2f((Dtriangle[i].Tnode.Pv[1]->
x-0.5)*2.0,(Dtriangle[i].Tnode.Pv[1]->
glVertex2f((Dtriangle[i].Tnode.Pv[2]->
x-0.5)*2.0,(Dtriangle[i].Tnode.Pv[2]->
glEnd();
voidread_spoint(point*p,intn)
glVertex2f(p[i].x,p[i].y);
voidDisplay()
glClear(GL_COLOR_BUFFER_BIT);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glPointSize(4.0);
read_triangle(Dtriangle);
glFlush();
};
voidput_this(intpsize[point_size][2],intlast)
last;
cout<
psize[i][0]<
cout<
for(i=0;
psize[i][1]<
voidput_bug(d_t_nodeDtriangle1)
for(inti=0;
point:
Dtriangle1.Tnode.Pv[i]->
x<
y<
the_o:
Dtriangle1.Tnode.o_of_tr.x<
Dtriangle1.Tnode.o_of_tr.y<
the_r"
Dtriangle1.Tnode.r_of_sqrt<
poistion_in_Dt"
Dtriangle1.position_in_dt<
zhuangtai:
Dtriangle1.zhuangtai_when_new<
for(i=0;
if(Dtriangle1.Pt_l[i]!
=NULL)
cout<
_"
Dtriangle1.Pt_l[i]
->
position_in_dt;
elsecout<
_NULL"
boolp_in_q(d_t_node*queue_t,pointp_new)
floatp_o,r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限元分析 中的 二维 Delaunay 三角 网格 代码 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)