资源简介

该程序可以在窗口里用鼠标随意点击来产生不同的“城市”,最短距离也是直观的连线表示,简单易用。热心提醒:模拟退火法在该程序中没有单一的退火方向,等同于随机遍历,你可以自己想办法设置退火方向,我还没想出来怎么办╮(╯▽╰)╭

资源截图

代码片段和文件信息

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

namespace 旅行商问题
{
    public partial class Form1 : Form
    {
        Graphics gra;
        public Form1()
        {
            InitializeComponent();
        }
        Point[] points = new Point[100];
        int size = 0; //点的个数
        int[] order; //由0开始指回0
        int radius = 12;//圆点半径
        private void pictureBox1_MouseDown(object sender MouseEventArgs e)
        {
            drawingLineState = false;
            button3.Enabled = false;
            button7.Enabled = false;
            if (e.Button == MouseButtons.Right)
            {
                if (size > 0)
                {
                    size--;
                }
                gra.Clear(pictureBox1.BackColor);
                drawPoint();
                return;
            }
            if (size >= 100)
            {
                return;
            }

            points[size] = e.Location;
            size++;

            drawPoint();

            toolStripStatusLabel1.Text = points[size - 1].ToString();
        }

        private void drawPoint()
        {
            if (size == 0)
            {
                return;
            }
            Brush bush = new SolidBrush(Color.Orange);//起始点的填充颜色
            gra.FillEllipse(bush points[0].X points[0].Y radius radius);
            bush = new SolidBrush(Color.Green);//填充的颜色
            for (int i = 1; i < size; i++)
            {
                gra.FillEllipse(bush points[i].X points[i].Y radius radius);//画填充椭圆的方法,x坐标、y坐标、宽、高,如果是100,则半径为50
            }
        }

        private void drawLine()
        {
            int offset = radius / 2;
            Pen pen = new Pen(Color.Black);
            System.Drawing.Drawing2D.AdjustableArrowCap lineCap = new System.Drawing.Drawing2D.AdjustableArrowCap(6 6 true);
            // pen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; //系统的这个箭头太小了
            pen.CustomEndCap = lineCap;
            Point p1 = new Point(points[0].X points[0].Y);
            Point p2 = new Point(points[order_buff[0]].X points[order_buff[0]].Y);
            p1.Offset(offset offset);
            p2.Offset(offset offset);
            gra.DrawLine(pen p1 p2);//连接第一个起始点和序列中第一个点
            for (int i = 0; i < size - 2; i++)//少第一个起始点少order中最后一个
            {
                p1 = new Point(points[order_buff[i]].X points[order_buff[i]].Y);
                p2 = new Point(points[order_buff[i + 1]].X points[order_buff[i + 1]].Y);
                p1.Offset(offset offset);
                p2.Offset(offset offset);
                gra.DrawLine(pen p1 p2);
            }
            p1 = new Point(points[order_buff[size - 2]].X points[order_buff[size - 2]].Y);
            p2 = new 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     57856  2016-11-01 21:03  旅行商问题\.vs\旅行商问题\v14\.suo

     文件        189  2016-04-28 09:37  旅行商问题\旅行商问题\App.config

     文件      28672  2016-11-01 20:31  旅行商问题\旅行商问题\bin\Release\旅行商问题.exe

     文件        189  2016-04-28 09:37  旅行商问题\旅行商问题\bin\Release\旅行商问题.exe.config

     文件      44544  2016-11-01 20:31  旅行商问题\旅行商问题\bin\Release\旅行商问题.pdb

     文件      22696  2016-11-01 21:03  旅行商问题\旅行商问题\bin\Release\旅行商问题.vshost.exe

     文件        189  2016-04-28 09:37  旅行商问题\旅行商问题\bin\Release\旅行商问题.vshost.exe.config

     文件        490  2016-07-16 19:44  旅行商问题\旅行商问题\bin\Release\旅行商问题.vshost.exe.manifest

     文件      14663  2016-05-01 00:22  旅行商问题\旅行商问题\Form1.cs

     文件      31751  2016-05-01 00:22  旅行商问题\旅行商问题\Form1.Designer.cs

     文件       6613  2016-05-01 00:22  旅行商问题\旅行商问题\Form1.resx

     文件       9759  2016-04-30 17:59  旅行商问题\旅行商问题\GeneticAlgorithm.cs

     文件       1464  2016-04-28 19:32  旅行商问题\旅行商问题\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7337  2016-04-28 11:20  旅行商问题\旅行商问题\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2016-04-28 09:37  旅行商问题\旅行商问题\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2016-04-28 09:37  旅行商问题\旅行商问题\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2016-04-28 09:37  旅行商问题\旅行商问题\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件       1149  2016-04-30 13:04  旅行商问题\旅行商问题\obj\Debug\旅行商问题.csproj.FileListAbsolute.txt

     文件       1013  2016-04-30 13:03  旅行商问题\旅行商问题\obj\Debug\旅行商问题.csproj.GenerateResource.Cache

     文件       2384  2016-04-28 09:57  旅行商问题\旅行商问题\obj\Debug\旅行商问题.csprojResolveAssemblyReference.cache

     文件      22528  2016-04-30 13:03  旅行商问题\旅行商问题\obj\Debug\旅行商问题.exe

     文件        180  2016-04-30 13:03  旅行商问题\旅行商问题\obj\Debug\旅行商问题.Form1.resources

     文件      38400  2016-04-30 13:03  旅行商问题\旅行商问题\obj\Debug\旅行商问题.pdb

     文件        180  2016-04-28 15:23  旅行商问题\旅行商问题\obj\Debug\旅行商问题.Properties.Resources.resources

     文件       1464  2016-04-29 19:08  旅行商问题\旅行商问题\obj\Release\DesignTimeResolveAssemblyReferences.cache

     文件       7248  2016-11-01 20:29  旅行商问题\旅行商问题\obj\Release\DesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2016-04-28 19:32  旅行商问题\旅行商问题\obj\Release\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2016-04-28 19:32  旅行商问题\旅行商问题\obj\Release\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2016-04-28 19:32  旅行商问题\旅行商问题\obj\Release\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件       2127  2016-11-01 21:03  旅行商问题\旅行商问题\obj\Release\旅行商问题.csproj.FileListAbsolute.txt

............此处省略31个文件信息

评论

共有 条评论