• 大小: 79KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: 生长法  tin  三角网  c#  

资源简介

利用三角形生长法快速形成三角网,界面良好,有基本注释。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Drawing.Drawing2D;

namespace TIN
{
    public partial class Form1 : Form
    {
        private static Bitmap bitmap = null; // 创建bitmap对象   
        private Graphics g =null;  //为graphics对象赋予值
        private Pen pen = new Pen(Color.Red 1);
        private Brush brush = Brushes.Red;
        private ArrayList list =null;
        private ArrayList linelist = null;
        private Bitmap huanyuanbitmap = null;
       
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender EventArgs e)
        {
            Initialize_drawingboard();
        }
       
        //用余弦定理求三个点夹角,cenPoint为顶点。
        public float Angle(Point cenPoint Point firstPoint Point secondPoint)
        {
            float dx1 dx2 dy1 dy2;
            float angle;
            dx1 = firstPoint.X - cenPoint.X;
            dy1 = firstPoint.Y - cenPoint.Y;
            dx2 = secondPoint.X - cenPoint.X;
            dy2 = secondPoint.Y - cenPoint.Y;
            float c = (float)Math.Sqrt(dx1 * dx1 + dy1 * dy1) * (float)Math.Sqrt(dx2 * dx2 + dy2 * dy2);
            if (c == 0) return -1;
            angle = (float)Math.Acos((dx1 * dx2 + dy1 * dy2) / c);
            return angle;
        }
        
        //两点距离。
        public double Distance(Point firstNum Point secondNum)
        {
            double dis = Math.Sqrt((secondNum.Y - firstNum.Y) * (secondNum.Y - firstNum.Y)
                                     + (secondNum.X - firstNum.X) * (secondNum.X - firstNum.X));
            return dis;
        }

        private void creatTIN_Btn_Click(object sender EventArgs e)
        {
            Initialize_Bitmap();
            this.pictureBox1.Update();
            creatTIN();
        }
        
        /*运用矢量判断点在一条有明确起始方向的线的左还是右;令矢量的起点为A,终点为B,判断的点为C,   
        如果S(A,B,C)为正数,则C在矢量AB的左侧;   
        如果S(A,B,C)为负数,则C在矢量AB的右侧;   
        如果S(A,B,C)为0,则C在直线AB上。*/
        public int JudgeLOrR(Point cenPoint Point firstPoint Point secondPoint)
    {
        double s;
        s = (firstPoint.X - cenPoint.X) * (secondPoint.Y - cenPoint.Y) - (firstPoint.Y - cenPoint.Y) * (secondPoint.X - cenPoint.X);
        if (s > 0)
        {
            return 1;
        }
        else if (s < 0)
            return 2;
        else
            return 0;
    }
      
        private void pictureBox1_MouseMove(object sender MouseEventArgs e)
        {
            this.position_label.Visible = true;
            this.position_label.Text = e.X.ToString() + ““ + e.Y.ToString();
            
        }

        private void pictureBox1_MouseLeave(object sender EventArgs e)
        {
            this.position_label.Visible = false;
   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-06-20 21:44  生长法生成TIN\
     目录           0  2013-06-20 21:39  生长法生成TIN\TIN\
     文件       27648  2013-06-20 21:12  生长法生成TIN\TIN.suo
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\bin\
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\bin\Debug\
     文件       32256  2013-06-20 16:39  生长法生成TIN\TIN\bin\Debug\TIN.pdb
     文件         490  2010-03-17 22:39  生长法生成TIN\TIN\bin\Debug\TIN.vshost.exe.manifest
     文件       13824  2013-06-20 21:09  生长法生成TIN\TIN\bin\Debug\TIN生成器.exe
     文件       32256  2013-06-20 21:09  生长法生成TIN\TIN\bin\Debug\TIN生成器.pdb
     文件       11600  2013-06-20 21:40  生长法生成TIN\TIN\bin\Debug\TIN生成器.vshost.exe
     文件         490  2010-03-17 22:39  生长法生成TIN\TIN\bin\Debug\TIN生成器.vshost.exe.manifest
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\bin\Release\
     文件        9910  2013-06-20 21:08  生长法生成TIN\TIN\Form1.cs
     文件        6554  2013-06-20 21:05  生长法生成TIN\TIN\Form1.Designer.cs
     文件        5817  2013-06-20 20:16  生长法生成TIN\TIN\Form1.resx
     文件         205  2013-06-20 21:08  生长法生成TIN\TIN\Line.cs
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\obj\
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\obj\x86\
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\obj\x86\Debug\
     文件        4440  2013-06-20 16:43  生长法生成TIN\TIN\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        6362  2013-06-20 21:24  生长法生成TIN\TIN\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件         316  2013-06-20 21:08  生长法生成TIN\TIN\obj\x86\Debug\GenerateResource.read.1.tlog
     文件         714  2013-06-20 21:08  生长法生成TIN\TIN\obj\x86\Debug\GenerateResource.write.1.tlog
     目录           0  2013-06-20 21:38  生长法生成TIN\TIN\obj\x86\Debug\TempPE\
     文件        1902  2013-06-20 16:39  生长法生成TIN\TIN\obj\x86\Debug\TIN.csproj.FileListAbsolute.txt
     文件       12800  2013-06-20 16:39  生长法生成TIN\TIN\obj\x86\Debug\TIN.exe
     文件         180  2013-06-20 21:08  生长法生成TIN\TIN\obj\x86\Debug\TIN.Form1.resources
     文件       32256  2013-06-20 16:39  生长法生成TIN\TIN\obj\x86\Debug\TIN.pdb
     文件         180  2013-06-20 21:08  生长法生成TIN\TIN\obj\x86\Debug\TIN.Properties.Resources.resources
     文件        1372  2013-06-20 21:40  生长法生成TIN\TIN\obj\x86\Debug\TIN生成器(生长法).csproj.FileListAbsolute.txt
     文件        1132  2013-06-20 21:08  生长法生成TIN\TIN\obj\x86\Debug\TIN生成器.csproj.FileListAbsolute.txt
............此处省略12个文件信息

评论

共有 条评论