狄洛尼三角网输出问题

问题描述

要求输出坐标表、边表、节点表、邻接表(相邻的三角形)。现在只完成了输出坐标表,想请教各位大神,如何表示和输出后面三种表格?给点建议也可以的。(右边是四个listbox)代码如下:Form1.csusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Collections;namespacecs3{publicpartialclassForm1:Form{privateGraphicsg=null;privatePenpen=newPen(Color.Red,1);privateBrushbrush=Brushes.Red;//设置笔刷为红色privateArrayListlist=newArrayList();//点列表privateArrayListlinelist=newArrayList();//边列表publicForm1(){InitializeComponent();}privatevoidForm1_MouseDown(objectsender,MouseEventArgse)//单击生成点{g=this.CreateGraphics();g.FillEllipse(brush,e.X,e.Y,5,5);list.Add(e.Location);listBox1.Items.Add(e.Location.X+","+e.Location.Y);//输出点坐标//listBox2.Items.Add();}publicfloatAngle(Pointcen,Pointfirst,Pointsecond)//求出三角形的顶角,cen为顶点{floatdx1,dx2,dy1,dy2;floatangle;dx1=first.X-cen.X;dy1=first.Y-cen.Y;dx2=second.X-cen.X;dy2=second.Y-cen.Y;floatc=(float)Math.Sqrt(dx1*dx1+dy1*dy1)*(float)Math.Sqrt(dx2*dx2+dy2*dy2);//判断能否组成三角形if(c==0)return-1;angle=(float)Math.Acos((dx1*dx2+dy1*dy2)/c);//求出顶点夹角returnangle;}publicdoubleDistance(Pointfirst,Pointsecond)//求两点距离{doubledis;dis=Math.Sqrt((second.Y-first.Y)*(second.Y-first.Y)+(second.X-first.X)*(second.X-first.X));returndis;}privatevoidbutton1_Click(objectsender,EventArgse)//生成三角网{doubleang;//定义角ArrayListtinline=newArrayList();//与第一点最近的点doublemindis=1000000000000;//定义最短距离doubledis;intcount=0;Linetl=newLine();for(inti=1;i<list.Count;i++)//循环所有点{dis=Distance((Point)list[0],(Point)list[i]);if(dis<mindis){mindis=dis;count=i;}}tl.Begin=(Point)list[0];tl.End=(Point)list[count];tl.ID = 1; tinline.Add(tl);for(intj=0;j<tinline.Count;j++){doubleminang=-1;//最小角boolOK;OK=false;Linetling1=newLine();Linetling2=newLine();for(inti=0;i<list.Count;i++){intyoubian;youbian=ZuoYou((Point)list[i],((Line)tinline[j]).Begin,((Line)tinline[j]).End);if(youbian==1){ang=Angle((Point)list[i],((Line)tinline[j]).Begin,((Line)tinline[j]).End);if(ang>minang){minang=ang;count=i;}OK=true;}}if(OK==true){tling1.Begin=((Line)tinline[j]).Begin;tling1.End=(Point)list[count];tinline.Add(tling1);tling2.Begin=(Point)list[count];tling2.End=((Line)tinline[j]).End;tinline.Add(tling2);for(inti=0;i<tinline.Count-1;i++){if(tling2.Begin==((Line)tinline[i]).Begin&&tling2.End==((Line)tinline[i]).End){tinline.Remove(tinline[tinline.Count-1]);}}}}for(inti=0;i<=tinline.Count-1;i++){g.DrawLine(pen,((Line)tinline[i]).Begin,((Line)tinline[i]).End);}}publicintZuoYou(Pointcen,Pointfirst,Pointsecond)//异则判断:判断点在直线左侧还是右侧{doubles;s=(first.X-cen.X)*(second.Y-cen.Y)-(first.Y-cen.Y)*(second.X-cen.X);if(s>0){return1;}elsereturn2;}}}Line.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Drawing;namespacecs3{classLine{publicPointBegin;publicPointEnd;publicintID;}}

解决方案

解决方案二:
如果你会delaunay算法就会很好弄,因为后三种表都是实现算法必须用到的结构或中间结果
解决方案三:
http://download.csdn.net/detail/fengdjhy/3112649引用1楼mwp的回复:

如果你会delaunay算法就会很好弄,因为后三种表都是实现算法必须用到的结构或中间结果

时间: 2025-01-29 22:17:56

狄洛尼三角网输出问题的相关文章

[译]人工智能带给我们的恐惧

几年以前我和一个刚刚创业的朋友品茶小聚,他刚过不惑之年却饱受背伤之苦,父亲也疾病缠身,一切痛楚让他觉得被生活所拖累,尝尽命运捉弄之苦."不怕你笑话",他提到,我现在真是"四处拜佛,以求得上天保佑有奇迹降临我身". 我的朋友浪迹科技圈,亲眼见证了微处理器频繁迭代更新以及互联网的迅猛发展,但那也不足以让他确信,在他发生中年危机之前--机器的智慧会超越人类,这才是未来学家称之为见证奇迹的时刻.一个善良的超级智能可以快速地分析出人类遗传密码并解开永恒青春的秘密,或者至少它可

华为通过低端Android手机刺激欧洲营收

北京时间9月5日上午消息,据国外媒体周五报道,中国最大的手机制造华为希望通过谷歌的品牌和低端手机打入欧洲市场,从而进一步提升公司的海外营收. 本周四,华为展示了152美元的谷歌品牌智能手机.华为西欧业务副总裁蒂姆·沃特金斯(Tim Watkins)表示,该款手机将提升华为在欧洲的市场份额.目前,华为尚未确定该款手机的运营商. 当前,华为正在拓展国际市场份额和营收.但同时,也引发了海外政府的安全担忧.有消息称,7月份华为准备收购美国两家公司的资产,但由于这两家公司担心遭到反垄断审查,导致谈判最终破

站在泡沫之巅的可穿戴设备

在科技行业,人人都希望自己站在浪潮之巅,大部分时候却在泡沫之巅. 厂家是这样.极客们是这样.媒体也是这样. 在2014年的美国CES展会,我溜达完一圈后,最大的感受是,如果非要为每年的CES加个关键词,"可穿戴设备"当仁不让. 这个至少已经风行了五年的科技概念,在全产业链条的各巨头公司正式加入后,终于半只脚踏入了大众的视野. 只是,泡沫依然横行. 泡沫一:创客改变世界 <创客>一书已经流行起来了,硬件中的极客们人手一本<创客>,志得意满,好比文艺青年抱着海子诗集

可能会遭到解聘的10位首席执行官

北京时间4月4日消息,据外国媒体报道,美国科技博客SAI昨日撰文,指出了科技行业未来一段时间可能会遭到解聘的10位首席执行官,该文章内容如下: 1.Twitter首席执行官迪克·科斯托洛(Dick Costolo) 科斯托洛必须证明Twitter比AIM及时通讯服务或其它聊天服务更加能够创收.科斯托洛当初离开谷歌,转而加盟Twitter,此前之 所以成为谷歌的一员,主要还是因为谷歌当年收购了科斯托洛的RSS广告网络Feedburner.Twitter曾被视为是一个很不错的业务 ,但科斯托洛似乎未

地理位置商SCVNGR再融资1500万美元 谷歌参与

中介交易 SEO诊断 淘宝客 云主机 技术大厅 北京时间1月4日消息,据美国科技网站TechCrunch报道,美国手机地理位置游戏服务商SCVNGR今天宣布,已于近日完成了第三轮融资,融资额为1500万美元.SCVNGR此轮融资由欧洲风险投资公司Balderton Capital主导,现有投资者Highland Capital和谷歌旗下风险投资部门Google Ventures也参与注资. SCVNGR所提供手机地理位置游戏服务(腾讯科技配图) 作为此次融资活动的组成部分,Balderton合伙

“红美商城”开放“限时抢购”板块公测

8月1日,红星美凯龙旗下电子商务平台"红美商城"开放"限时抢购"板块公测,这意味着传统家居大卖场已开拓电子商务业务.此前,天猫家装馆.新浪乐居家居mall.搜房家居商城等均已上线.目前,以家居产品为代表的大件非标品还没有成熟的B2C企业,但大件非标品进入在线零售渠道已成为行业的发展趋势. 国内建材家居电子商务平台齐家网CEO邓华金告诉记者,B2C电子商务的发展大致经历了三个阶段,从早期的标准化小件商品到空调电脑等大件商品,再到近两年正在经历迅速成长的非标准品(即定制

佩奇的美丽革命:重新打造“不现丑”的谷歌

[导读]佩奇要求形成全新的设计重心,使球体不转滚动下去,而不是专注于每一个步骤的细微管理,他让员工在得到充分授权的核心设计师团队带领下完成其他的工作. 自从拉里·佩奇(Larry Page)近两年前重新掌握谷歌控制权之后,谷歌立即发生了一件奇怪和明显的事情:它开始设计外观漂亮的应用. 优秀的设计并非人们传统观念中谷歌应当做的事情,更何况该公司经常进行一些非常细微.递进的改变,例如在搜索结果链接中使用41种深浅不同的蓝颜色,而不是信任自己的设计师创造一种全新的视觉.这种"严格依照数据武器开展非生即

Do not wait until the conditions are perfect to begin. Beginning makes the conditions perfect(转)

  名言金句总是不嫌多,美国<公司>杂志(Inc.)列出让你在 2015 年受用无穷的十大金句,每天选一则当作一天的心灵指导,不只学习前人的精神和智慧,也能转化成工作和生活的动力!Cheers! 1. "Do not wait until the conditions are perfect to begin. Beginning makes the conditions perfect."--Alan Cohen 「别等到大环境好转再开始行动:行动才是让环境变好的原因.」

紫色晶体饰界诚邀商界精英带上石英腕表 体验成功的人生

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 手表,和鞋子一样,都是一个人无形的.无声的形象"名片".看一个人富足不富足,什么都不需要做,只需要看看他手里的手表就行.因此,在营销行业的营销高手,只需要看看一个销售对象的形象,穿什么样的鞋子,穿什么样的手表,就可以发现其所在的市场潜在购买力如何.虽然这样说,有些夸张,但手表这样的细节,却真的是可以在细微之处,将一个人深层