精华内容
下载资源
问答
  • 用VC++、Opengl生成TIN三角网。 代码齐全,已实践能用。 用VC++、Opengl生成TIN三角网。 代码齐全,已实践能用。
  • 最快的TIN三角网生成算法

    热门讨论 2011-06-27 15:24:32
    最快的TIN三角网生成算法 最快的TIN三角网生成算法 最快的TIN三角网生成算法 最快的TIN三角网生成算法 TIN 三角网 最快 vc(6.0) TIN 三角网 最快 vc(6.0) TIN 三角网 最快 vc(6.0)
  • TIN三角型网格产生算法源码,具体使用“三角形由内而外生成”算法实现的TIN网格形成,运算量小,Tin三角网产生迅捷准确。
  • tin三角网算法实现源码。。。。。。。。。
  • TIN三角网生成

    2012-05-04 16:45:36
    VB6.0 三角网 TIN 算法 不规则三角网
  • 利用C#生成一个简单的TIN三角网

    千次阅读 2017-09-26 21:54:31
    利用C#生成简单tin三角网

    ###输入TXT数据

    private void inputbutton_Click(object sender, EventArgs e)
            {
                OpenFileDialog opg = new OpenFileDialog();
                opg.Title = "选择文本数据";
                opg.Filter = "Txt数据(*.txt)|*.txt";
                opg.ShowDialog();
                strName = opg.FileName;
                if (strName == "") return;
                inputBox.Text = strName;
                FileStream fs = new FileStream(strName, FileMode.Open);
                StreamReader sr = new StreamReader(fs, Encoding.Default);
                string strLine = sr.ReadLine();
                while (strLine != "" && strLine != null)
                {
                    Lines.Add(strLine);
                    Console.WriteLine(strLine);
                    strLine = sr.ReadLine();
                }
                Point point = new Point();
                for (int i = 1; i < Lines.Count; i++)
                {
    
                    string[] strArray = Lines[i].Split(charArray);
                    //point. = Convert.ToInt32(strArray[0]);
                    point.X = Convert.ToInt32(strArray[1]);
                    point.Y = Convert.ToInt32(strArray[2]);
                    pointList.Add(point);
                   
                }
                
            }
    

    ###生成TIN三角网

    private void probutton_Click(object sender, EventArgs e)
            {
                g = this.CreateGraphics();
                double ang;
                this.Refresh();
                ArrayList tinlines = new ArrayList();
                //定义与第一点最近的点
                double mindis = Distance((Point)pointList[0], (Point)pointList[1]);
                double dis;
                int count = 1;
                TinLine tl = new TinLine();
                for(int i = 1;i<pointList.Count ;i++)
                {
                    dis = Distance((Point)pointList[0], (Point)pointList[i]);
                    if (dis < mindis)
                    {
                        mindis = dis;
                        count = i;
                    }
                }
                //将第一条边反向已进行三角形扩展
                tl.Begin = (Point)pointList[0];
                tl.End = (Point)pointList[count];
                tinlines.Add(tl);
                TinLine line = new TinLine();
                Point a = ((TinLine)tinlines[0]).Begin;
                Point b = ((TinLine)tinlines[0]).End;
                line.Begin = b;
                line.End = a;
                tinlines.Add(line);
                //对每一条边进行扩展
                for (int j = 0; j < tinlines.Count; j++)
                {
                    double minang = 0;
                    bool OK;
                    OK = false;
                    TinLine tling1 = new TinLine();
                    TinLine tling2 = new TinLine();
                    for (int i = 0; i < pointList.Count; i++)
                    {
                        int youbian;
                        //判断第三点与前两点的位置关系
                        youbian = ZuoYou((Point)pointList[i], ((TinLine)tinlines[j]).Begin, ((TinLine)tinlines[j]).End);
                        if (youbian == 1)
                        {
                            //获取角度最大点
                            ang = Angle((Point)pointList[i], ((TinLine)tinlines[j]).Begin, ((TinLine)tinlines[j]).End);
                            if (ang > minang)
                            {
                                minang = ang;
                                count = i;
                            }
                            OK = true;
                        }
    
                    }
                    if (OK == true)
                    {
                        //将新生成两条边添加入集合中
                        int t1 = 0;
                        int t2 = 0;
                        tling1.Begin = ((TinLine)tinlines[j]).Begin;
                        tling1.End = (Point)pointList[count];
                        tling2.Begin = (Point)pointList[count];
                        tling2.End = ((TinLine)tinlines[j]).End;
                        tinlines.Add(tling1);
                        tinlines.Add(tling2);
                        for (int i = 0; i < tinlines.Count - 2;i++ )
                        {
                            //判断新生成的两边是否与已生成的边重合
                            if ((tling2.Begin == ((TinLine)tinlines[i]).Begin && tling2.End == ((TinLine)tinlines[i]).End)|| 
                                (tling2.Begin == ((TinLine)tinlines[i]).End && tling2.End == ((TinLine)tinlines[i]).Begin))
                            {
                                t2 = 1;
                            }
                            if ((tling1.Begin == ((TinLine)tinlines[i]).Begin && tling1.End == ((TinLine)tinlines[i]).End) || 
                                (tling1.Begin == ((TinLine)tinlines[i]).End && tling1.End == ((TinLine)tinlines[i]).Begin))
                            {
                                t1 = 1;
    
                            }
                        }
                        //两条边都重合
                        if (t2 == 1 && t1 == 1)
                        {
                            for (int i = 0; i < 2;i++ )
                            {
                                tinlines.Remove(tinlines[tinlines.Count - 1]);
                            }
                        }
                        //第二条边重合
                        else if (t2 == 1)
                        {
                            tinlines.Remove(tinlines[tinlines.Count - 1]);
                        }
                        //第一条边重合
                        else if (t1 == 1)
                        {
                            tinlines.Remove(tinlines[tinlines.Count - 2]);
                        }                        
                    }
                }
                tinlines.Remove(tinlines[0]);//将集合中的第一条边删除
                Pen pen = new Pen(Color.Red, 1);
                for (int i = 0; i <= tinlines.Count - 1; i++)
                {
                    g.DrawLine(pen, ((TinLine)tinlines[i]).Begin, ((TinLine)tinlines[i]).End);
                }
                g.Dispose();
    
            }
    

    ###程序中用到的自定义方法

    public double Distance(Point a, Point b)
            {
                double d;
                d = Math.Sqrt((b.X - a.X) * (b.X - a.X) + (b.Y - a.Y) * (b.Y - a.Y));
    
                return d;
            }
    
            public int ZuoYou(Point c, Point a, Point b)
            {
                int youbian;
                double S;
                S = (a.X - c.X) * (b.Y - c.Y) - (a.Y - c.Y) * (b.X - c.X);
                if (S > 0)
                {
                    youbian = 1;
                }
                else if (S < 0)
                {
                    youbian = -1;
                }
                else
                {
                    youbian = 0;
                }
                return youbian;
            }
    
            public double Angle(Point c, Point a, Point b)
            {
                double ang;
                double l1 = Math.Sqrt((b.X - c.X) * (b.X - c.X) + (b.Y - c.Y) * (b.Y - c.Y));
                double l2 = Math.Sqrt((a.X - c.X) * (a.X - c.X) + (a.Y - c.Y) * (a.Y - c.Y));
                double l3 = Math.Sqrt((b.X - a.X) * (b.X - a.X) + (b.Y - a.Y) * (b.Y - a.Y));
                ang = Math.Acos((l1 * l1 + l2 * l2 - l3 * l3) / (2 * l1 * l2));
                return ang;
            }
    
    展开全文
  • c#tin三角网生成算法及源码。。。。。。。。。。
  • Python 等值线生成(TIN三角网

    千次阅读 2020-06-22 10:00:46
    基于TIN三角网生成不光滑等值线

    等值线功能实现

    等值点插值

    在一条边上按照高程值线性插值,计算出待插值高程的x,y坐标,并将插值的结果实例成一个点类,方便统一管理,如下所示:

    #插值函数
    def Interpolation(edge,n,i):
        if(edge.BeginPoint.H>edge.EndPoint.H):
                Hmax=edge.BeginPoint
                Hmin=edge.EndPoint
        elif(edge.BeginPoint.H<edge.EndPoint.H):
            Hmin=edge.BeginPoint
            Hmax=edge.EndPoint
        if (n>Hmin.H and n<Hmax.H):
            dy=Hmax.Y-Hmin.Y
            dx=Hmax.X-Hmin.X
            linescale=(n-Hmin.H)/(Hmax.H-Hmin.H)
            x=Hmin.X+linescale*dx
            y=Hmin.Y+linescale*dy
            name="{0}-{1}".format(n,i)
            eqpoint=Point(name,x,y,n)
            return eqpoint
        else:
            return 0
    

    TIN 边界边查找

    遍历TIN的每个三角形边,我们认为具有邻接三角形的边在TIN内部,不具有邻接三角形的边是边界边。我们的数据特点是只具有开曲线,所以找到边界边作为某条等值线的生成起点至关重要,代码如下:

    #边界边列表
    def BorderTri(Triangle_List):
        Border_list=[]
        for i in range(0,len(Triangle_List)):
            if (len(Triangle_List[i].BaseLine.Belonging_Triangle)==1):
                Border_list.append(Triangle_List[i].BaseLine)
            if (len(Triangle_List[i].newLine1.Belonging_Triangle)==1):
                Border_list.append(Triangle_List[i].newLine1)
            if (len(Triangle_List[i].newLine2.Belonging_Triangle)==1):
                Border_list.append(Triangle_List[i].newLine2)
        return  Border_list
    

    单个三角形内生长等值线

    在定位的三角形内生长等值线,根据一个三角形有且仅有两个等值点,在三角形的另外两条边上插值第二个等值点,并将所在的边作为新的生长起点,如下所示:

    #一个三角形内生长等值线
    def Grow_Eq(triangle,eqedge,n):
        point=0
        edges=[triangle.BaseLine,triangle.newLine1,triangle.newLine2]
        for edge in edges:
            if(edge==eqedge):
                continue
            else:
                point=Interpolation(edge,n,edge.Belonging_Triangle[0])
                if(point!=0):
                    break
        return edge,point
    

    一条等值线生成

    从边界边的一侧按单个三角形生长等值线,直至生长到TIN对侧的另一条边界边一条等值线生长完成。

    #查找等值点 输出等值线序列点
    def Equivalent_point(Triangle_List,n):
        point=0
        eqlinelist=[]
        Border_list=bor=BorderTri(Triangle_List)
        for borderedge in Border_list:
            edge=borderedge
            point=Interpolation(edge,n,edge.Belonging_Triangle[0])
            if(point!=0):
                eqlinelist.append(point)
                break
        #根据邻接三角形生成等值线
        index=edge.Belonging_Triangle[0]
        [edge,point]=Grow_Eq(Triangle_List[index],edge,n)
        eqlinelist.append(point)
        while(len(edge.Belonging_Triangle)==2):
            index=edge.Belonging_Triangle[1]
            [edge,point]=Grow_Eq(Triangle_List[index],edge,n)
            eqlinelist.append(point)
        return eqlinelist
    

    按等高距生成全部等值线

    在TIN的最低点到最高点的高程范围内,按照一定的等高距,由低到高逐步生成每条等值线,直至全局等值线生成,代码如下:

    # 全局等高线
    def Contour_Line(Point_List,Triangle_List,d):
        eqlinlists=[]
        Hmax=EPSILON
        Hmin=1/EPSILON
        for p in Point_List:
            if(p.H>Hmax):
                Hmax=p.H
            if(p.H<Hmin):
                Hmin=p.H
        n=Hmin+d
        while(n<Hmax):
            eqlinlist=Equivalent_point(Triangle_List,n)
            eqlinlists.append(eqlinlist)
            n=n+d
        return eqlinlists
    

    可视化结果

    可视化代码

    '''*******************窗体********************'''
    # 生成一个窗体界面 命名为window
    window=tk.Tk()
    window.title('TIN')
    window.geometry('1000x750')
    
    # 在窗体上生成一块画布 用于绘制导线图
    canvas = tk.Canvas(window,width=800,height=600,bg = 'white')
    canvas.place(x=190,y=10)
    
    #画等值线
    def Draw_Equivalent_line(eqpointlists,Point_List):
        xyminmax=XYMinMax(Point_List)
        for eqpointlist in eqpointlists:
            for i in range(0,len(eqpointlist)-1):
                gxgy1=GaussToScreenCor(xyminmax,eqpointlist[i].X,eqpointlist[i].Y)
                gxgy2=GaussToScreenCor(xyminmax,eqpointlist[i+1].X,eqpointlist[i+1].Y)
                oval = canvas.create_oval(gxgy1[0]-1, gxgy1[1]-1, gxgy1[0]+1, gxgy1[1]+1)
                ova2 = canvas.create_oval(gxgy1[0]-1, gxgy1[1]-1, gxgy1[0]+1, gxgy1[1]+1)
                Connect_Point(gxgy1,gxgy2,'red')
    
    #********调试********
    path="D:\等高线点数据.txt"
    point_list=ReadDataTXT(path)
    Net=CreatTIN(point_list)
    Draw_TIN(point_list,Net[0])
    eqs=Contour_Line(point_list,Net[1],30)
    Draw_Equivalent_line(eqs,point_list)
    window.mainloop()
    '''*******************所有代码在此之上********************'''
    

    等值线(未平滑)

    未平滑的等值线

    全部代码

    #插值函数
    def Interpolation(edge,n,i):
        if(edge.BeginPoint.H>edge.EndPoint.H):
                Hmax=edge.BeginPoint
                Hmin=edge.EndPoint
        elif(edge.BeginPoint.H<edge.EndPoint.H):
            Hmin=edge.BeginPoint
            Hmax=edge.EndPoint
        if (n>Hmin.H and n<Hmax.H):
            dy=Hmax.Y-Hmin.Y
            dx=Hmax.X-Hmin.X
            linescale=(n-Hmin.H)/(Hmax.H-Hmin.H)
            x=Hmin.X+linescale*dx
            y=Hmin.Y+linescale*dy
            name="{0}-{1}".format(n,i)
            eqpoint=Point(name,x,y,n)
            return eqpoint
        else:
            return 0
    #边界边列表
    def BorderTri(Triangle_List):
        Border_list=[]
        for i in range(0,len(Triangle_List)):
            if (len(Triangle_List[i].BaseLine.Belonging_Triangle)==1):
                Border_list.append(Triangle_List[i].BaseLine)
            if (len(Triangle_List[i].newLine1.Belonging_Triangle)==1):
                Border_list.append(Triangle_List[i].newLine1)
            if (len(Triangle_List[i].newLine2.Belonging_Triangle)==1):
                Border_list.append(Triangle_List[i].newLine2)
        return  Border_list
    #一个三角形内生长等值线
    def Grow_Eq(triangle,eqedge,n):
        point=0
        edges=[triangle.BaseLine,triangle.newLine1,triangle.newLine2]
        for edge in edges:
            if(edge==eqedge):
                continue
            else:
                point=Interpolation(edge,n,edge.Belonging_Triangle[0])
                if(point!=0):
                    break
        return edge,point
    #查找等值点 输出等值线序列点
    def Equivalent_point(Triangle_List,n):
        point=0
        eqlinelist=[]
        Border_list=bor=BorderTri(Triangle_List)
        for borderedge in Border_list:
            edge=borderedge
            point=Interpolation(edge,n,edge.Belonging_Triangle[0])
            if(point!=0):
                eqlinelist.append(point)
                break
        #根据邻接三角形生成等值线
        index=edge.Belonging_Triangle[0]
        [edge,point]=Grow_Eq(Triangle_List[index],edge,n)
        eqlinelist.append(point)
        while(len(edge.Belonging_Triangle)==2):
            index=edge.Belonging_Triangle[1]
            [edge,point]=Grow_Eq(Triangle_List[index],edge,n)
            eqlinelist.append(point)
        return eqlinelist
    # 全局等高线
    def Contour_Line(Point_List,Triangle_List,d):
        eqlinlists=[]
        Hmax=EPSILON
        Hmin=1/EPSILON
        for p in Point_List:
            if(p.H>Hmax):
                Hmax=p.H
            if(p.H<Hmin):
                Hmin=p.H
        n=Hmin+d
        while(n<Hmax):
            eqlinlist=Equivalent_point(Triangle_List,n)
            eqlinlists.append(eqlinlist)
            n=n+d
        return eqlinlists
    '''*******************窗体********************'''
    # 生成一个窗体界面 命名为window
    window=tk.Tk()
    window.title('TIN')
    window.geometry('1000x750')
    
    # 在窗体上生成一块画布 用于绘制导线图
    canvas = tk.Canvas(window,width=800,height=600,bg = 'white')
    canvas.place(x=190,y=10)
    
    # 画出数据点
    def Draw_Point(Point_List):
        xyminmax=XYMinMax(Point_List)
        for point in Point_List:
            gxgy=GaussToScreenCor(xyminmax,point.X,point.Y)
            oval = canvas.create_oval(gxgy[0]-1, gxgy[1]-1, gxgy[0]+1, gxgy[1]+1)
            #canvas.create_text(gxgy[0]-13,gxgy[1],text=point.PointName)
    
    # 画出TIN网
    def Connect_Point(list1,list2,color):
        line = canvas.create_line(list1[0], list1[1],list2[0],list2[1],fill = color)
    def Draw_TIN(Point_List,Line_List):
        xyminmax=XYMinMax(Point_List)
        for line in Line_List:
            gxgy1=GaussToScreenCor(xyminmax,line.BeginPoint.X,line.BeginPoint.Y)
            gxgy2=GaussToScreenCor(xyminmax,line.EndPoint.X,line.EndPoint.Y)
            oval = canvas.create_oval(gxgy1[0]-1, gxgy1[1]-1, gxgy1[0]+1, gxgy1[1]+1)
            ova2 = canvas.create_oval(gxgy1[0]-1, gxgy1[1]-1, gxgy1[0]+1, gxgy1[1]+1)
            Connect_Point(gxgy1,gxgy2,'black')
    #画等值线
    def Draw_Equivalent_line(eqpointlists,Point_List):
        xyminmax=XYMinMax(Point_List)
        for eqpointlist in eqpointlists:
            for i in range(0,len(eqpointlist)-1):
                gxgy1=GaussToScreenCor(xyminmax,eqpointlist[i].X,eqpointlist[i].Y)
                gxgy2=GaussToScreenCor(xyminmax,eqpointlist[i+1].X,eqpointlist[i+1].Y)
                oval = canvas.create_oval(gxgy1[0]-1, gxgy1[1]-1, gxgy1[0]+1, gxgy1[1]+1)
                ova2 = canvas.create_oval(gxgy1[0]-1, gxgy1[1]-1, gxgy1[0]+1, gxgy1[1]+1)
                Connect_Point(gxgy1,gxgy2,'red')
    #********调试********
    path="D:\等高线点数据.txt"
    point_list=ReadDataTXT(path)
    Draw_Point(point_list)
    Net=CreatTIN(point_list)
    Draw_TIN(point_list,Net[0])
    eqs=Contour_Line(point_list,Net[1],10)
    Draw_Equivalent_line(eqs,point_list)
    window.mainloop()
    '''*******************所有代码在此之上********************'''
    
    展开全文
  • (1条消息) 最快的TIN三角网生成算法_tin三角网,三角网生成算法-C/C++文档类资源-CSDN下载

    (1条消息) 最快的TIN三角网生成算法_tin三角网,三角网生成算法-C/C++文档类资源-CSDN下载

    这里借鉴了别人的算法,生成速度特别快。 但是代码注释特别少,因为进度的催促我也没有仔细的研究把三角网生成调试出来就结束了。

    具体的办法和论文《一种基于凸包的 Delaunay-TIN 生成算法及优化》特别相似,不知道是不是同一个作者。

    上图展示生成的TIN。

    展开全文
  • tin三角网的构建

    2015-05-29 10:57:03
    利用OPENGL构建不规则三角网,离散的点
  • 生长法生成TIN三角网

    2013-10-27 10:37:12
    利用三角形生长法快速形成三角网,界面良好,有基本注释。
  • 很好的离散点绘制三角网代码(包含源程序+测试数据)
  • VC++,OPENGL实现TIN三角网的构建

    热门讨论 2009-05-10 22:13:55
    基于VC++和OPENGL编程实现三角网的构建.使用MFC编写。
  • 上面这方面资料比较少,ArcGIS官方网站只给了python如何生成Tin,其实可以对比python写法,写出C#版本代码。 以下是具体代码 public static void generateTIN_Advance() { Stopwatch sw = new Stopwatch()...

    未有特别说明均为原创,转载注明出处。

     

     网上面这方面资料比较少,ArcGIS官方网站只给了python如何生成Tin,其实可以对比python写法,写出C#版本代码。

    以下是具体代码

    public static void generateTIN_Advance() 
    {
        Stopwatch sw = new Stopwatch();
        sw.Start();
        try
        {
            ILayer pLayer = Property.axMapControl.get_Layer(0);//随便打开生成TIN数据的原文件
            IFeatureLayer pFeaLayer = pLayer as IFeatureLayer;
            string strFeaLayerPath = encryptionAlgorithm.getLayerStorePath(pFeaLayer);
            IWorkspaceFactory pwf = new ShapefileWorkspaceFactory();
            IFeatureWorkspace pfw = pwf.OpenFromFile(strFeaLayerPath, 0) as IFeatureWorkspace;
            IFeatureClass pfc1 = pfw.OpenFeatureClass("XXX.shp");
            IFeatureClass pfc2 = pfw.OpenFeatureClass("XXX2.shp");
            Geoprocessor GP = new Geoprocessor();
            CreateTin createTin = new CreateTin();
            string strCreateTinName = "Tin";         
            if (Directory.Exists(strFeaLayerPath + @"\" + strCreateTinName))//如果已经存在 删除已经存在的TIN 
            {
                Directory.Delete(strFeaLayerPath + @"\" + strCreateTinName, true);
            }
            else////创建存放TIN的文件夹     
            {
                string parentPath = Directory.GetParent(strFeaLayerPath + @"\" + strCreateTinName).FullName;
                if (!Directory.Exists(parentPath))
                {
                    Directory.CreateDirectory(parentPath);
                }
            }     
            //设置输入文件参数
            string height_field = "Shape.Z";
            string SF_type1 = "Mass_Points";//"masspoints"
            string SF_type2 ="Hard_Clip";// "hardclip"
            string tag_value = "<None>";//"" "null"
            //生成GP属性表格对象
            GpValueTableObject gpValueTableObject = new GpValueTableObjectClass();
            //文件obj1 参数设置
            object obj11 = pfc1;//strFeaLayerPath + @"\" + pfc1.AliasName + ".shp ";
            object obj12 = height_field;
            object obj13 = SF_type1;
            object obj14 = tag_value;
            //文件obj2 参数设置
            object obj21 = pfc2;//strFeaLayerPath + @"\" + pfc2.AliasName + ".shp ";
            object obj22 = height_field;
            object obj23 = SF_type2;
            object obj24 = tag_value;
            //设置GP属性表列数
            gpValueTableObject.SetColumns(4);
            //设置GP属性表行数 同时传入文件
            gpValueTableObject.AddRow(ref obj11);
            gpValueTableObject.AddRow(ref obj21);
            //向GP属性表内填入参数 注意已经设置过每行的第0列 即上步骤中传入的文件
            //gpValueTableObject.SetValue(0, 0, obj11);
            gpValueTableObject.SetValue(0, 1, obj12);
            gpValueTableObject.SetValue(0, 2, obj13);
            gpValueTableObject.SetValue(0, 3, obj14);
            //gpValueTableObject.SetValue(1, 0, obj21);
            //gpValueTableObject.SetValue(1, 1, obj22);
            gpValueTableObject.SetValue(1, 2, obj23);
            gpValueTableObject.SetValue(1, 3, obj24);
            //调用 实例化TIN接口,输入要素为GP属性表,输出要素路径和文件名
            string outTin = strFeaLayerPath + @"\" + strCreateTinName;
            //gp.Execute("CreateTin_3d", parameters, null);
            createTin.in_features = gpValueTableObject;
            createTin.out_tin = outTin;
            //执行GP工具,将creatTin放入
            GP.Execute(createTin, null);
            // Wait until the execution completes.
            // while (result.Status == esriJobStatus.esriJobExecuting)
            //     Thread.Sleep(1000);
            // // Wait for 1 second.
            //MessageBox.Show(gp.GetMessages(ref sev));
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        sw.Stop();
        TimeSpan ts2 = sw.Elapsed;
        MessageBox.Show(String.Format("Stopwatch总共花费{0}ms.\n即{1}s.\n即{2}min", Convert.ToString(ts2.TotalMilliseconds), Convert.ToString(ts2.TotalMilliseconds / 1000), Convert.ToString(ts2.TotalMilliseconds / 1000 / 60)));      
    }

     

    转载于:https://www.cnblogs.com/marvelousone/p/10747342.html

    展开全文
  • 新手初学mfc,很多搞不懂。老师给的代码很齐但我还是看不懂。。。。。唉 我在百度盘里有这个程序,老师发的作业。 第一次发帖。。。 希望有大虾告诉我该怎么改。。。 http://pan.baidu.com/s/1hr5xbWK
  • TIN三角

    2017-04-02 23:46:03
    MFC应用程序,采用生长算法构建tin三角网,随机生成点高程。并用opengl进行简单的三维显示,旋转,光照及纹理映射
  • 三角网TIN实例

    2018-12-28 09:04:06
    三角剖分算法实例,创建不规则三角网TIN。。。。。。。
  • 三角网Tin

    2011-09-26 10:19:17
    根据散点,生成三角网,内插高程,tin的生成技术
  • tin 不规则三角网 凸包 生成

    热门讨论 2010-05-30 12:30:44
    tin 不规则三角网 凸包 生成 tin 不规则三角网 凸包 生成 tin 不规则三角网 凸包 生成 tin 不规则三角网 凸包 生成
  • 格网DEM生成不规则三角网TIN的具体实现,搭配https://download.csdn.net/download/charlee44/18333143食用
  • 三角网生长算法构建TIN

    千次阅读 热门讨论 2020-06-09 18:07:40
    三角网生长算法构建TIN(C#版)
  • TIN三角形格地形数据及其OpenGL显示

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,060
精华内容 424
关键字:

tin三角网