如何将点的坐标变换成矢量图。

如何将点的坐标变换成矢量图。,第1张

给出一个图的m-着色的程序段,回溯法:

/ 图的邻接矩阵Graph[n,n]表示无向连通图G,

1,2,3,m代表不同的颜色

顶点i所着色用x[i]表示,初始值都赋为0

/

void NextValue(int k)

{

int j, flag;

do{

x[k] = (x[k]+1) % (m + 1)//分配给x[k]一种新的颜色

if (x[k] == 0)

return; //x[k]的颜色已用完

flag = 1; //x[k]是否可用的标记

for (j = 0; j < n; j++)

if (Graph[k,j] == 1 && x[k] == x[j]){

flag = 0; //x[k]不可用

break;

}

while (flag);

}

void MColoring(int k)

{

while (x[k] < m){ //产生x[k]的合理分配

NextValue(k); //找x[k]的一个合理分配

if (x[k] == 0)

return; //无解,结束调用

if (k == n) { //着完n个顶点,找到完整着色法,输出

Output(x,k) //输出当前解

else

MColoring(k+1)

}

}

/

递归算法:

void Coloring(区域 n)

1 令颜色集ClrSet={ 没有被区域n的邻居区域使用的颜色 }

2 如果ClrSet是空集,返回

3 对ClrSet中的每种颜色c,作循环:

31 为区域n着色c。

32 如果所有区域都已着色(n是最后一个区域),那么显示/保存着色结果

33 否则对下一个尚未着色的区域(n+1),调用Coloring(n+1)

4 把区域n变为没有着色的区域

--------------------------------------------------------

/

template<int node_count = 8>

class CColoring

{

private:

typedef int node_type;

typedef int color_type;

typedef std::set<node_type> node_set;

typedef std::vector<color_type> color_array;

public:

void operator()(const int _Matrix[node_count][node_count])

{

matrix = _Matrix;

colors_of_nodesresize(node_count, 0);

total_count = 0;

coloring(0);

}

private:

void coloring(node_type n)

{

// 颜色的使用情况

std::vector<bool> used_colors;

node_type m;

color_type c;

// 初始化颜色的使用情况

used_colorsresize(color_count, false);

// 遍历每个与区域n相邻的区域m

for(m = 0; m < node_count; ++m)

{

if(matrix[n][m])

{

// 获取m的颜色

c = colors_of_nodes[m];

// m已着色

if(c != 0)

used_colors[c] = true;

}

}

// 遍历每个未被n的邻居使用的颜色c

for(c = 1; c < color_count; ++c)

{

if(!used_colors[c])

{

// 为n着色c

colors_of_nodes[n] = c;

// 着色完毕

if(n >= node_count - 1)

{

++total_count;

// 输出结果

_tprintf(_T("---------------------\n"));

_tprintf(_T("Method %d:\n"), total_count);

for(m = 0; m < node_count; ++m)

{

_tprintf(_T("node: %d, color: %d\n"), m, colors_of_nodes[m]);

}

}

// 还有区域没有着色

else

{

// 为下一个未着色的区域,调用coloring()

coloring(n + 1);

}

}

}

// 将n设置为没有着色的区域

colors_of_nodes[n] = 0;

}

// 0表示无色,1-4表示4种不同颜色

static const int color_count = 5;

// 邻接矩阵

const int ( matrix)[node_count];

// 各区域对应的颜色

color_array colors_of_nodes;

// 总的着色方案数

int total_count;

};

void main()

{

int Matrix[4][4] =

{

{ 0, 1, 0, 0 },

{ 1, 0, 0, 0 },

{ 0, 0, 0, 1 },

{ 0, 0, 1, 0 },

};

CColoring<4> coloring;

coloring(Matrix);

}

不知道你需要什么,如果你需要gps点数据,可以在谷歌地图上找到它相应的地图(很清楚)经纬度坐标,让后用mapsource中转换成公里网格坐标点,然后用arcgis中add x y 添加到arcgis中

分析:

标量图转化为矢量图的方法,包括如下步骤:

1、对原始图像进行线条化,得到图像的边缘轮廓图;

2、对边缘轮廓图进行色阶标准化调整,获取线条增强的轮廓图;

3、计算图像阈值,然后二值化图像阈值;

4、获取边缘轮廓点,连续的边缘轮廓点构成一个多边形;

5、对每个多边形的点进行曲线拟合;

6、通过贝塞尔曲线绘制曲线拟合后的多边形,并用黑色填充,得到矢量边缘图;

7、对原图通过双边滤波迭代进行图像平滑,获取平面光滑的图像;

8、平面图像和矢量边缘图像进行正片叠底运算,获取矢量化图像。

2009年信息技术会考真题

选择"D"

矢量图的基础是解析几何上的点、线、面、体。计算机屏幕上的任意两点之间的连线,或是直线,或是曲线,实质上是以计算机规定的基础像素单位为依据,从第一个点出发,遵循几何矢量的规律(方向、步长),步步前进,最后达到第二个点。这个点运动经过的轨迹描述出来,就是矢量图。

以上就是关于如何将点的坐标变换成矢量图。全部的内容,包括:如何将点的坐标变换成矢量图。、如何从地图服务器获取指定经度和纬度范围的arcgis矢量图数据及其格式、标量图怎么转矢量图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9559451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存