资源简介
该程序可以在窗口里用鼠标随意点击来产生不同的“城市”,最短距离也是直观的连线表示,简单易用。热心提醒:模拟退火法在该程序中没有单一的退火方向,等同于随机遍历,你可以自己想办法设置退火方向,我还没想出来怎么办╮(╯▽╰)╭
代码片段和文件信息
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个文件信息
- 上一篇:基于C#开发的图片处理工具
- 下一篇:C#图像二值化代码
相关资源
- C#遗传算法常用7种遗传算法源码
- 使用C#实现的遗传算法
- 旅行商问题,TSP问题,C#源码
- 模拟退火解决八皇后问题
- C#进化计算:遗传算法源代码
- C#模拟退火算法排课系统
- 旅行商问题 遗传算法 贪婪基因重组
- VS2008编写基于遗传算法的C#五子棋游戏
- 模拟退火算法C#源码+
- c# 遗传算法 最短路径
- 常用的7种 C# 遗传算法源码集
- 遗传算法最短路径c#实现
- C#遗传算法求解VRP问题
- 多元函数遗传算法
- 遗传算法求解车辆路径问题程序源码
- 遗传算法求解TSP问题C#界面版
-
AForge.NET_fr
amework-2.1.3 一个C#下面的图 -
time
table-csharp c#/CSharp 遗传算法高校 - 遗传算法,C#代码,简单入手
- 基于C#的图像处理、神经网络、遗传算
- 旅行商问题 最短路径算法(群蚁)
- C#遗传算法
评论
共有 条评论