由于写论文要将“哈密顿回路问题(TSP)”的求解中间结果表示出来,查了一下使用程序画多边形图形。现在在总结一下,这个图是“由给定节点首尾相连的”闭合多边形。
1.使用matlab作闭合多边形图
没有找到直接画多边形的函数,只能是将各个点的坐标保存在数组中,将一个点与其相邻的点相连,并将最后一个点与第一个点连接。下面是一个示例的.m文件:
clear;
clc;
a=[ ; ]; %要连接的点坐标 x;y
[n,m]=size(a);
for i=:m-;
line([a(,i),a(,i+)],[a(,i),a(,i+)]); %连接节点line([x1,x2],[y1,y2])
hold on
end
hold on
line([a(,),a(,m)],[a(,),a(,m)]); %首尾节点相连
2.使用Java作闭合多边形图
Java中的Graphics类drawPolygon函数提供了直接的多边形作图。
函数原型:public abstract void drawPolygon(int[] xPoints, int[] yPoints,int nPoints)
说明:(1)绘制一个由 x 和 y 坐标数组定义的闭合多边形。每对 (x, y) 坐标定义了一个点。nPoints表示线段的个数。
(2)前面的 nPoint - 1
个线段是当 1 ≤ i ≤ nPoints
时,从 (xPoints[i-1], yPoints[i-1])
到 (xPoints[i], yPoints[i])
的线段。如果最后一个点和第一个点不同,则图形会通过在这两点间绘制一条线段来自动闭合。
代码示例如下:
import java.applet.*;
import java.awt.*;
public class DrawPicture extends Applet
{ public void paint(Graphics g)
{
int px[]={20,70,130,240};
int py[]={20,150,100,130};
g.drawPolygon(px,py,4);
}
}
执行结果:
3.说明
是否能构成多边形,凸多边形,还是凹多边形,这些与给定的点的顺序有关。
程序只是负责将相邻的节点连接, 以及首尾连接。