永发信息网

c语言编程,关于不规则三角网的边界提取的

答案:2  悬赏:60  手机版
解决时间 2021-03-07 11:49
  • 提问者网友:蓝琪梦莎
  • 2021-03-06 17:40
我现在知道不规则三角网(TIN)的所有三维顶点坐标,现在要提取这个三角网的边界点,我有这个想法,每个边界点之间的边长只被一个三角形共有,内部三角形的边被两个三角形共有。根据这个可以提取出边界。请问怎么用c语言实现啊?我这儿有数据,如果可以请留下邮箱,我发给你。

我的点都是三维坐标点,还有z值,建立队列我不太熟悉,能否根据我的思路来做?
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-03-06 17:48
是的,如果一条边只被一个三角形拥有,它就是边界。

你的三角网含不含“岛屿”,含个数不定的“岛屿”程序要复杂一些。

我常用的有限元网文件:
x1 y1 z1 // node 座标
x2 y2 z2
....
xi yi zi
...
xn yn zn
n11 n12 n13 // 构成三角形1 3顶点号
n21 n22 n23 // 构成三角形2 3顶点号
n31 n32 n33 // 。。。
n41 n42 n43
...
全部回答
  • 1楼网友:第四晚心情
  • 2021-03-06 19:00
给,你们老师的要求真怪异,: #include<conio.h> #include<stdio.h> voidfun(inta[][34],intn) { inti,j; for(i=0;i<n;i++) for(j=0;j<=i;j++) { if(i==j) a[i][j]=1; elseif(j==0) a[i][j]=1; else a[i][j]=a[i-1][j-1]+a[i-1][j]; } } intmain() { inti,j,k,n; inta[34][34]; k=1; while(scanf("%d",&n)==1)//输入你要显示的行数,如1,2,3,4,... { fun(a,n); printf("case%d:\n",k++); for(i=0;i<n;i++) { for(j=0;j<n-i;j++) printf(""); for(j=0;j<=i;j++) { if(j==i) printf("%d",a[i][j]); else printf("%d",a[i][j]); } printf("\n"); } printf("\n"); } getch(); return0; } 注意一下, 在5行以内时可以成为等腰三角形的,5行以上就不行了, 不是代码不行,是就实现不了,可以问问你们老师有何高招
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯