计算数学高手请:多边形内哪一点到所有顶点的距离和最小?算法如何实现?

杨哥儿 2008-12-13 02:51:14
我有一系列多边形(4边、5边、6边甚至7边),不能分辨或标识是不是凸凹多边形。
现在我要求一点,要求到多边形所有顶点间的距离和最小。
我的算法:
坐标x=∑(Xi)/n
坐标y=∑(Yi)/n
在凸多边形中检查是最小值,但在凹多边形中就不是?
请高手说明下原理和算法,不给代码也行,有数学公式就可以了!!
...全文
1143 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
grearo 2008-12-18
  • 打赏
  • 举报
回复
算法没有优化,最基本的算法
grearo 2008-12-18
  • 打赏
  • 举报
回复
这个是.cs的

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

namespace NearestPoint
{
public partial class Form1 : Form
{
public Point[] allPoint = new Point[10];
DateTime startTime = new DateTime();
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{

//int pCount=
}



/// <summary>
/// 遍历区域
/// </summary>
/// <param name="maxP"></param>
/// <param name="minP"></param>
/// <param name="PointList"></param>
/// <returns></returns>
private Point BianliArea(Point maxP, Point minP, Point[] PointList)
{
Point pTemp = new Point();
double lenghTemp = 9999999999;
for (int x = minP.X; x <= maxP.X; x++)
{
for (int y = minP.Y; y <= maxP.Y; y++)
{
double getlength = GetLength(new Point(x, y), PointList);
if (getlength < lenghTemp)
{
lenghTemp = getlength;
pTemp.X = x;
pTemp.Y = y;
listBox1.Items.Add(pTemp.X.ToString() + ":" + pTemp.Y.ToString() + " L:" + lenghTemp.ToString());
}
}
}
return pTemp;
}

/// <summary>
/// 获取某点到各点的距离
/// </summary>
/// <param name="p"></param>
/// <param name="PointList"></param>
/// <returns></returns>
private double GetLength(Point p, Point[] PointList)
{
double lengthSum = 0;
foreach (Point p0 in PointList)
{
lengthSum += Math.Sqrt((p0.X - p.X) * (p0.X - p.X) + (p0.Y - p.Y) * (p0.Y - p.Y));
}
return lengthSum;
}

private void button2_Click(object sender, EventArgs e)
{
startTime = DateTime.Now;
allPoint[0] = new Point(8, 7);
allPoint[1] = new Point(5, 8);
allPoint[2] = new Point(2, 2);
allPoint[3] = new Point(1, 0);
allPoint[4] = new Point(9, 4);
allPoint[5] = new Point(3, 2);
allPoint[2] = new Point(12, 35);
allPoint[3] = new Point(34, 33);
allPoint[4] = new Point(62, 56);
allPoint[5] = new Point(45, 32);
Point nearestPoint = BianliArea(new Point(62, 56), new Point(1, 0), allPoint);
DateTime endTime = DateTime.Now;
listBox1.Items.Add("NearestPoint:"+nearestPoint.X.ToString() + ":" + nearestPoint.Y.ToString() );

listBox1.Items.Add("StartTime:" + startTime.ToString());
listBox1.Items.Add("EndTime:" + endTime.ToString());
listBox1.Items.Add("UsedTime:" + (endTime.Millisecond - startTime.Millisecond).ToString() + "ms");

}
}
}
grearo 2008-12-18
  • 打赏
  • 举报
回复
找到代码了
这个是.design.cs的

namespace NearestPoint
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region Windows Form Designer generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.listBox1 = new System.Windows.Forms.ListBox();
this.button1 = new System.Windows.Forms.Button();
this.listBox2 = new System.Windows.Forms.ListBox();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(12, 12);
this.listBox1.Name = "listBox1";
this.listBox1.ScrollAlwaysVisible = true;
this.listBox1.Size = new System.Drawing.Size(313, 220);
this.listBox1.TabIndex = 0;
//
// button1
//
this.button1.Location = new System.Drawing.Point(421, 12);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 50);
this.button1.TabIndex = 1;
this.button1.Text = "Find It From listBox";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// listBox2
//
this.listBox2.FormattingEnabled = true;
this.listBox2.ItemHeight = 12;
this.listBox2.Items.AddRange(new object[] {
"8,7",
"5,8",
"2,2",
"1,0",
"9,4",
"3,2",
"12,35",
"34,33",
"62,56",
"45,32"});
this.listBox2.Location = new System.Drawing.Point(331, 11);
this.listBox2.Name = "listBox2";
this.listBox2.ScrollAlwaysVisible = true;
this.listBox2.Size = new System.Drawing.Size(84, 220);
this.listBox2.TabIndex = 2;
//
// button2
//
this.button2.Location = new System.Drawing.Point(421, 68);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 49);
this.button2.TabIndex = 3;
this.button2.Text = "Find It From Point[]";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(508, 243);
this.Controls.Add(this.button2);
this.Controls.Add(this.listBox2);
this.Controls.Add(this.button1);
this.Controls.Add(this.listBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.ListBox listBox2;
private System.Windows.Forms.Button button2;
}
}



grearo 2008-12-18
  • 打赏
  • 举报
回复
还打算给你代码的来着,一直都没人,也不结贴,也不加分的~~```汗,失望啊~··O(∩_∩)O哈哈~
webjishu001 2008-12-15
  • 打赏
  • 举报
回复
http://coder.webjishu.cn/Html/?14315.html


webjishu001 2008-12-15
  • 打赏
  • 举报
回复
我已经根据Grearo的方法写出来了。
杨哥儿 2008-12-15
  • 打赏
  • 举报
回复
没人理我.明天就结了.只能这样了.
谢谢grearo!!
bjwoxp 2008-12-15
  • 打赏
  • 举报
回复
中国星幻科技有限公司是一家专门为企业和个人量身定制短信平台的专业公司.专业做行业短信群发 行业短信接口 网站短信接口 节日短信群发 客户短信群发的公司,整合多条正规的绿色短信行业群发通道,支持短信群发、定时发送、支持短信自动接收、短信自动回复、转发、短信发送智能断点续发;可以集成在网站、客户管理系统、进销存系统、OA、生产管理系统等等、提供HTTP网站短信接口、WEBSERVICE短信接口、适应各种语言所有网站都可以接入.用于企业的客户关系维护,产品以及企业活动的宣传,适用于大中小型企业,商场,酒店等星幻短信平台是面向广大企事业单位开发的手机短信收发系统。以特有的高效、准确、实用、便捷和经济,为各企、事业单位和机关团体提供一个崭新、实用的即时信息发布平台,架起了企业与用户之间信息沟通的桥梁。可以让您的老客户不走,新客户不断! 平台具备全国全网,四网合一(移动、联通、电信、网通)的短信服务提供商。同时覆盖全国移动、联通、小灵通等多个网络用户,轻松实现短信上行和下行 星幻短信网关多条通道发送;支持上下行支持HTTP GET/POST WebService接口;发送速度快;延时小.可以在线发短信。不用下载软件. 短信网关,短信接口,网站短信.群发短信。价格便宜,质量保证。多条通道供你选择。移动联通106直连通道已接入。只能发行业。有需要的大客户速联系。价格优惠。每秒在100-200条. 星幻短信 移动、联通直连全网短信网关,提供网站短信接口.群发短信。价格便宜,质量保证,多条通道供你选择.四网合一,支持回复. www.woxp.cn 中国星幻科技有限公司 接口地址: http://www.xhsms.com/sms_gate.htm
※同样的价格我们比质量※ ※同样的质量我们比服务※ ※同样的服务我们比信誉※ 真诚期待与您携手合作!
grearo 2008-12-15
  • 打赏
  • 举报
回复
别听他瞎忽悠,那是我原来的老代码,没有求整运算,也就是说有算法优化的;
10点0-1000以内整数需要0-100MS,平均16MS;
好好看看我的说明,自己写吧。
按照我说的优化后的算法,应该计算复杂度为log2n*4;而原来算法复杂度为:n*n (注:n为最大数与最小数的差的绝对值)
杨哥儿 2008-12-15
  • 打赏
  • 举报
回复
能给下源代码不?
要多少分你说?
杨哥儿 2008-12-14
  • 打赏
  • 举报
回复
还希望能有更多的高手给点思路!
杨哥儿 2008-12-14
  • 打赏
  • 举报
回复
grearo的方法论 没明白.还有其它高手的算法否?
grearo 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 uself 的回复:]
看到了你的帖子:
http://topic.csdn.net/u/20081212/12/c87c8a23-a327-4dbb-a466-bf0a3e8f5462.html
呵呵!!
[/Quote]
看到之后,试验了一下,不小心全捐给朋友了~~·
杨哥儿 2008-12-13
  • 打赏
  • 举报
回复
grearo 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 uself 的回复:]
谢谢grearo!
我还是有点没明白!!
怎么给可用分.你说方法.我给你500可用分.
[/Quote]
不用
你怎么知道我没有可用分啊?O(∩_∩)O哈哈~
杨哥儿 2008-12-13
  • 打赏
  • 举报
回复
谢谢grearo!
我还是有点没明白!!
怎么给可用分.你说方法.我给你500可用分.
grearo 2008-12-13
  • 打赏
  • 举报
回复
当然你可以对2取整,取多次,log2(max(x,y))
grearo 2008-12-13
  • 打赏
  • 举报
回复
注意,如果不会求S1,可以直接用{S1:Xmin<=x<=Xmax,Ymin<=y<=Ymax}
以上算法适用于坐标在0-99以内多边形状;你可以更改取整值,当然可以多次取整操作
grearo 2008-12-13
  • 打赏
  • 举报
回复
多边形(多点)最短距离点求法----区域点遍历法 O(∩_∩)O哈哈~
第一步:取整数分步,将所有点坐标10倍取整( 例如:P1=(34,56)10倍取证后(3.4,5.6)-> (4,6) ),获得去整后各点组成的遍历区域S1;
第二步:遍历S1内的各点,寻找最短距离点Pmin(Xm,Ym);
第三步:用第2步取到的点,获取遍历区域II{S2:Xm*10-10<=x<=Xm*10,Ym*10-10<=y<=Ym*10};
第四步:用第二步遍历区域S2,获取最近点;


杨哥儿 2008-12-13
  • 打赏
  • 举报
回复
多边形重心?
加载更多回复(3)
本书是国际算法大师乌迪·曼博(Udi Manber)博士撰写的一本享有盛誉的著作。全书共分12章:第1章到第4章为介绍性内容,涉及数学归纳法、算法分析、数据结构等内容;第5章提出了与归纳证明进行类比的算法设计思想;第6章到第9章分别给出了4个领域的算法,如序列和集合的算法、图算法、几何算法、代数和数值算法;第10章涉及归约,也是第11章的序幕,而后者涉及NP完全问题;第12章则介绍了并行算法;最后是部分习题的答案及参考文献。本书的特色有二,旨在提高读者的问题求解能力,使读者能够理解算法设计的过程和思想:一是强调算法设计的创造性过程,注重算法设计背后的创造性思想,而不拘泥于某个具体算法的详细讨论;二是将算法设计类比于定理归纳证明,揭示了算法设计的基本思想和本质。 本书的组织结构清晰且易于理解,强调了创造性,具有浓郁特色,时至今日仍有其巨大的价值,并且适合作为计算机及相关专业算法和高级算法课程的教材。 第1章 引论 第2章 数学归纳法 2.1 引言 2.2 三个简单的例子 2.3 平面内区域的计数 2.4 简单的着色问题 2.5 复杂一些的加法题 2.6 一个简单的不等式 2.7 欧拉公式 2.8 图论中的一个问题 2.9 格雷码 2.10 在图上寻找无重边的路 2.11 数学平均数和几何平均数定理 2.12 循环不变量:将十进制数转换为二进制数 2.13 常见的错误 2.14 小结 第3章 算法分析 3.1 引言 3.2 符号O 3.3 时间与空间复杂度 3.4 求和 3.5 递推关系 3.5.1 巧妙地猜测 3.5.2 分治关系 3.5.3 涉及全部历史的递推关系 3.6 一些有用的证明论据 3.7 小结 第4章 数据结构简介 4.1 引言 4.2 基本数据结构 4.2.1 元素 4.2.2 数组 4.2.3 记录 4.2.4 链表 4.3 树 4.3.1 树的表示 4.3.2 堆 4.3.3 二叉搜索树 4.3.4 AVL树 4.4 散列 4.5 合并?查找问题 4.6 图 4.7 小结 第5章 基于归纳的算法设计 5.1 引言 5.2 多项式求值 5.3 最大导出子图 5.4 寻找一对一映射 5.5 社会名流问题 5.6 分治算法:轮廓问题 5.7 在二叉树中计算平衡因子 5.8 寻找最大连续子序列 5.9 增强归纳假设 5.10 动态规划:背包问题 5.11 常见的错误 5.12 小结 第6章 序列和集合的算法 6.1 引言 6.2 二叉搜索的几种形式 6.2.1 纯二叉搜索 6.2.2 循环序列的二叉搜索 6.2.3 二叉搜索特殊下标 6.2.4 二叉搜索长度未知的序列 6.2.5 重叠子序列问题 6.2.6 解方程 6.3 内插搜索 6.4 排序 6.4.1 桶排序和基数排序 6.4.2 插入排序和选择排序 6.4.3 归并排序 6.4.4 快速排序 6.4.5 堆排序 6.4.6 排序问题的下界 6.5 顺序统计 6.5.1 最大数和最小数 6.5.2 查找第k小的数 6.6 数据压缩 6.7 串匹配 6.8 序列比较 6.9 概率算法 6.9.1 随机数 6.9.2 着色问题 6.9.3 将拉斯维加斯算法变换成确定性算法 6.10 查找众数 6.11 三个展现有趣证明方法的问题 6.11.1 最长递增序列 6.11.2 查找集合中两个最大的元素 6.11.3 计算多重集合的模 6.12 小结 第7章 图算法 7.1 引言 7.2 欧拉图 7.3 图的遍历 7.3.1 深度优先搜索 7.3.2 广度优先搜索 7.4 拓扑排序 7.5 单源最短路径 7.6 最小代价生成树 7.7 全部最短路径 7.8 传递闭包 7.9 图的分解 7.9.1 双连通分支 7.9.2 强连通分支 7.9.3 利用图分解的例子 7.10 匹配 7.10.1 非常稠密图中的完美匹配 7.10.2 偶图匹配 7.11 网络流量 7.12 哈密尔顿旅行 7.12.1 反向归纳 7.12.2 在非常稠密图中找哈密尔顿回路 7.13 小结 第8章 几何算法 8.1 引言 8.2 判定点是否在多边形内部 8.3 构造简单多边形 8.4 凸包 8.4.1 直接方法 8.4.2 礼品包裹算法 8.4.3 Graham扫描算法 8.5 最近点对 8.6 水平线段和竖直线段的交点 8.7 小结 第9章 代数和数值算法 9.1 引言 9.2 求幂运算 9.3 欧几里得算法 9.4 多项式乘法 9.5 矩阵乘法 9.5.1 Winograd算法 9.5.2 Strassen算法 9.5.3 布尔矩阵 9.6 快速傅里叶变换 9.7 小结 第10章 归约 10.1 引言 10.2 归约的例子 10.2.1 简单字符串匹配问题 10.2.2 特殊代表集 10.2.3 关于序列比较的归约 10.2.4 在无向图中寻找三角形 10.3 有关线性规划的归约 10.3.1 概述与定义 10.3.2 归约到线性规划的例子 10.4 下界的归约 10.4.1 寻找简单多边形算法复杂度的下界 10.4.2 关于矩阵的简单归约 10.5 常见的错误 10.6 小结 第11章 NP完全问题 11.1 引言 11.2 多项式时间归约 11.3 非确定性和Cook定理 11.4 NP完全性的证明例子 11.4.1 顶点覆盖问题 11.4.2 支配集问题 11.4.3 3SAT问题 11.4.4 团问题 11.4.5 3着色问题 11.4.6 一般经验 11.4.7 更多的NP完全问题 11.5 处理NP完全问题的技术 11.5.1 回溯法和分枝限界法 11.5.2 确保性能的近似算法 11.6 小结 第12章 并行算法 12.1 引言 12.2 并行计算模型 12.3 共享存储器算法 12.3.1 并行加 12.3.2 寻找最大数的算法 12.3.3 并行前缀问题 12.3.4 在链表中查寻秩 12.3.5 欧拉遍历技术 12.4 互连网络上的算法 12.4.1 阵列上的排序 12.4.2 排序网络 12.4.3 在树中查找第k个最小元素 12.4.4 网孔上的矩阵乘法 12.4.5 超立方体中的路由 12.5 脉动计算 12.5.1 矩阵与向量相乘 12.5.2 卷积问题 12.5.3 序列的比较 12.6 小结 部分习题答案 参考文献
目录 一.数论 4 1.阶乘最后非零位 4 2. 模线性方程(组) 4 3. 素数表 6 4. 素数随机判定(miller_rabin) 6 5. 质因数分解 7 6. 最大公约数欧拉函数 8 二.图论_匹配 9 1. 二分图最大匹配(hungary邻接表形式) 9 2. 二分图最大匹配(hungary邻接表形式,邻接阵接口) 10 3. 二分图最大匹配(hungary邻接阵形式) 10 4. 二分图最大匹配(hungary正向表形式) 11 5. 二分图最佳匹配(kuhn_munkras邻接阵形式) 11 6. 一般图匹配(邻接表形式) 12 7. 一般图匹配(邻接表形式,邻接阵接口) 13 8. 一般图匹配(邻接阵形式) 14 9. 一般图匹配(正向表形式) 15 三.图论_生成树 16 1. 最小生成树(kruskal邻接表形式) 16 2. 最小生成树(kruskal正向表形式) 17 3. 最小生成树(prim+binary_heap邻接表形式) 19 4. 最小生成树(prim+binary_heap正向表形式) 20 5. 最小生成树(prim+mapped_heap邻接表形式) 21 6. 最小生成树(prim+mapped_heap正向表形式) 22 7. 最小生成树(prim邻接阵形式) 23 8. 最小树形图(邻接阵形式) 24 四.图论_网络流 25 1. 上下界最大流(邻接表形式) 25 2. 上下界最大流(邻接阵形式) 26 3. 上下界最小流(邻接表形式) 27 4. 上下界最小流(邻接阵形式) 29 5. 最大流(邻接表形式) 30 6. 最大流(邻接表形式,邻接阵接口) 31 7. 最大流(邻接阵形式) 32 8. 最大流无流量(邻接阵形式) 32 9. 最小费用最大流(邻接阵形式) 33 五. 图论_最短路径 34 1. 最短路径(单源bellman_ford邻接阵形式) 34 2. 最短路径(单源dijkstra_bfs邻接表形式) 35 3. 最短路径(单源dijkstra_bfs正向表形式) 35 4. 最短路径(单源dijkstra+binary_heap邻接表形式) 36 5. 最短路径(单源dijkstra+binary_heap正向表形式) 37 6. 最短路径(单源dijkstra+mapped_heap邻接表形式) 38 7. 最短路径(单源dijkstra+mapped_heap正向表形式) 39 8. 最短路径(单源dijkstra邻接阵形式) 40 9. 最短路径(多源floyd_warshall邻接阵形式) 40 六. 图论_连通性 41 1. 无向图关键边(dfs邻接阵形式) 41 2. 无向图关键点(dfs邻接阵形式) 42 3. 无向图块(bfs邻接阵形式) 43 4. 无向图连通分支(bfs邻接阵形式) 43 5. 无向图连通分支(dfs邻接阵形式) 44 6. 有向图强连通分支(bfs邻接阵形式) 44 7. 有向图强连通分支(dfs邻接阵形式) 45 8. 有向图最小点基(邻接阵形式) 46 七. 图论_应用 46 1.欧拉回路(邻接阵形式) 46 2. 前序表转化 47 3. 树的优化算法 48 4. 拓扑排序(邻接阵形式). 49 5. 最佳边割集 50 6. 最佳顶点割集 51 7. 最小边割集 52 8. 最小顶点割集 53 9. 最小路径覆盖 55 八. 图论_NP搜索 55 1. 最大团(n小于64)(faster) 55 2. 最大团 58 九. 组合 59 1. 排列组合生成 59 2. 生成gray码 60 3. 置换(polya) 61 4. 字典序全排列 61 5. 字典序组合 62 6. 组合公式 62 十. 数值计算 63 1. 定积分计算(Romberg) 63 2. 多项式求根(牛顿法) 64 3. 周期性方程(追赶法) 66 十一. 几何 67 1. 多边形 67 2. 多边形切割 70 3. 浮点函数 71 4. 几何公式 76 5. 面积 78 6. 球面 79 7. 三角形 79 8. 三维几何 81 9. 凸包(graham) 89 10. 网格(pick) 91 11. 圆 92 12. 整数函数 94 13. 注意 96 十二. 结构 97 1. 并查集 97 2. 并查集扩展(friend_enemy) 98 3. 堆(binary) 98 4. 堆(mapped) 99 5. 矩形切割 99 6. 线段树 100 7. 线段树扩展 102 8. 线段树应用 105 9. 子段和 105 10. 子阵和 105 十三. 其他 106 1. 分数 106 2. 矩阵 108 3. 日期 110 4. 线性方程组(gauss) 111 5. 线性相关 113 十四. 应用 114 1. joseph 114 2. N皇后构造解 115 3. 布尔母函数 115 4. 第k元素 116 5. 幻方构造 116 6. 模式匹配(kmp) 118 7. 逆序对数 118 8. 字符串最小表示 119 9. 最长公共单调子序列 119 10. 最长子序列 120 11. 最大子串匹配 121 12. 最大子段和 122 13. 最大子阵和 123 常用源代码 包括很多经典算法 数学问题: 1.精度计算——大数阶乘 2.精度计算——乘法(大数乘小数) 3.精度计算——乘法(大数乘大数) 4.精度计算——加法 5.精度计算——减法 6.任意进制转换 7.最大公约数、最小公倍数 8.组合序列 9.快速傅立叶变换(FFT) 10.Ronberg算法计算积分 11.行列式计算 12.求排列组合数 字符串处理: 1.字符串替换 2.字符串查找 3.字符串截取 计算几何: 1.叉乘法求任意多边形面积 2.求三角形面积 3.两矢量间角度 4.两点距离(2D、3D) 5.射向法判断点是否在多边形内部 6.判断点是否在线段上 7.判断两线段是否相交 8.判断线段与直线是否相交 9.点到线段最短距离 10.求两直线的交点 11.判断一个封闭图形是凹集还是凸集 12.Graham扫描法寻找凸包 数论: 1.x的二进制长度 2.返回x的二进制表示中从低到高的第i位 3.模取幂运算 4.求解模线性方程 5.求解模线性方程组(中国余数定理) 6.筛法素数产生器 7.判断一个数是否素数 图论: 1.Prim算法最小生成树 2.Dijkstra算法求单源最短路径 3.Bellman-ford算法求单源最短路径 4.Floyd算法求每对节点间最短路径 排序/查找: 1.快速排序 2.希尔排序 3.选择法排序 4.二分查找 数据结构: 1.顺序队列 2.顺序栈 3.链表 4.链栈 5.二叉树
2017年秋学期中石油华东《计算机图形学》2017年春学期在线作业〔一〕 一、单选题〔共 15 道试题,共 75 分.〕 1. 下列关于齐次坐标的说法,不正确的是〔 〕. A. 二维平面中的点用非齐次坐标表示时,具有两个分量,且是唯一的 B. 齐次坐标技术就是用n+1维向量表示一个n维向量,而且在n+1维空间中讨论n维向量的变换 C. 用齐次坐标技术可以对平移、比例、旋转等几何变换用矩阵乘法来处理 D. 齐次坐标表示技术不可以用来表示无穷远点 正确答案: 2. 以下关于图形变换的论述那些是错误的〔 〕. A. 错切变换虽然可引起图形角度的改变,但不会发生图形畸变 B. 平移变换不改变图形大小和形状,只改变图形位置 C. 任意一个变换序列均可表示为一个组合变换矩阵,该组合变换矩阵是基本变换矩阵的和 D. 旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 正确答案: 3. 下列关于直线段扫描转换的中点算法中,〔 〕是正确的. A. 对不同斜率的直线段而言,判断下一像素采用的递推公式一样 B. 中点算法中的基本运算是浮点运算 C. 因直线具有正负划分性,所以可以采用中点算法 D. DDA算法中有乘法运算,而中点算法中没有乘法运算 正确答案: 4. 多边形扫描线算法主要有3个步骤,正确的次序是〔 〕. 1> 计算扫描线与多边形各边的交点; 2> 将交点两两配对,并填充每一区段; 3> 对交点按x坐标从小到大排序. A. 1,2,3 B. 1,3,2 C. 2,3,1 D. 3,2,1 正确答案: 5. 下列关于区域采样进行反走样处理的描述中,〔 〕不正确. A. 加权和非加权方法都需要计算直线段和像素的面积 B. 在计算面积时,两种方法可以离散化像素进行快速计算 C. 非加权方法考虑子像素离像素中心的距离 D. 加权方法考虑子像素离像素中心的距离 正确答案: 6. 利用种子填充算法实现多边形填充时,边界和内点的连通性要求是〔 〕. A. 内点为4连通时,边界必须为4连通 B. 内点为4连通时,边界必须为8连通 C. 内点为8连通时,边界必须为4连通 D. 内点为8连通时,边界必须为8连通 正确答案: 7. 分辨率为1024x1024的显示器大约需要〔 〕字节位平面数为24的帧缓存. A. 512KB B. 1MB C. 2MB D. 3MB 正确答案: 8. 关于线宽控制中,正确的说法是〔 〕. A. 复制像素法执行效率高,适合于比较大的线宽 B. 方形画笔绘制线段,当斜率接近于1,宽度最小 C. 复制像素法在斜率等于1时,宽度最大 D. 常用的线宽控制方法有复制像素法、移动画笔法和区域填充法等 正确答案: 9. 计算机图形显示器一般使用什么颜色模型〔 〕. A. RGB B. CMY C. HSV D. HLS 正确答案: 10. 在中点画圆算法中,哪种说法是错误的〔 〕. A. 为了减轻画圆的工作量,中点画圆利用了圆的四对称性质 B. 双步画线算法是一个增量算法 C. 中点画圆算法只用到整数的加减法和左移运算,故效率高且适合硬件实现 D. 中点画圆法与中点画线法类似,用一个函数值来选择两个像素点中最逼近圆弧的像素点 正确答案: 11. 下列关于射线法判断点v是否在多边形内部的命题中,〔 〕正确. A. 根据从v引出的射线与多边形交点个数可以断定是否在多边形内部 B. 射线法可以适用于任何多边形 C. 当射线通过多边形边的顶点时,这时交点个数算2个 D. 当射线通过多边形边的顶点时,这时交点个数算1个 正确答案: 12. 〔 〕是图形的基本元素,其生成算法直接决定着系统的效率. A. 直线和圆弧 B. 直线和多边形 C. 圆弧和多边形 D. 曲线和曲面 正确答案: 13. 计算机图形学与计算机图像处理的关系是〔 〕. A. 计算机图形学是基础,计算机图像处理是其发展 B. 不同的学科,研究对象和数学基础不同,但它们之间也有可转换部分 C. 同一学科在不同场合的不同称呼而已 D. 完全不同的学科,两者毫不相干 正确答案: 14. 在下列语句中选出正确论述〔 〕. A. 一般图形系统中所配置的点阵绘图打印机其分辨率对图形处理运算的精度没有直接影响 B. 在图形文件中通常不采用点阵来描述图形 C. 彩色打印机所使用CMY 颜色模型不能由RGB 颜色模型计算得到 D. 在光栅扫描图形显示器中可直接显示用几何特征参数来描述的图形元素 正确答案: 15. 多边形填充时,下述论述错误的是〔 〕. A. 多边形被两条扫描线分割成许多梯形,梯形的底边在扫描线上,腰在多边形的边上,并且相 间排列 B. 多边形与某扫描线相交得到偶数个交点,这些交点间构成的线段分别在多边形内、外,并 且相间排列 C. 在判断点是否在多边形内时,一般通

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧