excelmaya怎么创建多边形的自由多边形图形各顶点能...

这是个机器人猖狂的时代,请输一下验证码,证明咱是正常人~线条、连接符和任意多边形概述
您可能需要添加一个线条以指向一条信息、创建空白的签名行或者将文字分开。
连接符是在末端具有连接点且与您将其附加到的形状保持连接的线条。连接符有三种类型:直接连接符、肘形(带角)连接符和曲线连接符。
选择连接符之后,当您将指针移到形状上时,形状上会出现红色圆点(在 Microsoft Office Publisher 2007 中为蓝色圆点)。这些点表示可以附加连接符的位置。
当您重新排列与连接符联接的形状时,连接符仍然附加到这些形状并随这些形状一起移动。如果移动连接符的任一末端,该末端将会与形状分离,然后您可以将该连接符附加到同一形状上的其他连接结点或者将其附加到另一形状。在该连接符附加到连接结点后,该连接符将与这些形状保持连接,而不管您如何移动各个形状。
重新排列连接的形状之后,您可能需要重排某些连接符,以尽量进行直接连接并防止连接符与形状交叉。
如果您希望某个形状既具有曲线段又具有直线段,则可以绘制开放的或闭合的任意多边形。您还可以绘制一个看起来好像是用绘图笔或铅笔绘制的形状。
绘制一个线条或连接符
连接符是在末端具有连接点且与您将其附加到的形状保持连接的线条。
绘制具有连接点的线条
1.请执行下列操作之一:
对于 Office Excel 2007,在&插入&选项卡上的&插图&组中,单击&形状&。&
2.在&线条&下,单击要添加的线条或连接符。
要绘制不与形状连接的线条,请单击文档中的任意位置,然后拖动以绘制线条。&
要绘制与形状连接的线条,请在第一个形状上,指向要附加连接符的位置,单击第一个连接结点,指向另一个形状,然后单击第二个连接结点。当您将指针移到形状上时,连接结点显示为红色圆圈。
●线条上已附加的连接点显示为红色圆圈。线条上未附加的连接点显示为浅蓝色(几乎透明)圆圈。
●要限制线条与其起始点之间成 15 度角,请在拖动的同时按住 Shift。
●您还可以向线条添加快速样式、填充或效果。&
绘制无连接点的线条
1.请执行下列操作之一:
对于 Office Excel 2007,在&插入&选项卡上的&插图&组中,单击&形状&。&
2.在&线条&下,单击&任意多边形& 。&
3.单击文档中的某一位置,将指针移动到另一位置,然后再次单击。&
完成绘制线条后,请双击。
绘制多个线条或连接符
连接符是在末端具有连接点且与您将其附加到的形状保持连接的线条。
1.请执行下列操作之一:
对于 Office Excel 2007,在&插入&选项卡上的&插图&组中,单击&形状&。
2.在&线条&下,右键单击要添加的线条或连接符,然后单击&锁定绘图模式&。
3.单击文档中的任意位置,然后执行下列操作之一:
●对于要添加的每个线条,单击文档中的某个位置,将指针移动到另一位置,然后再次单击。完成绘制线条后,请双击。
●要将连接符添加到多个形状,请在第一个形状上,指向要附加连接符的位置,单击所需的第一个连接结点,指向其他形状,然后单击第二个连接结点。&
对要添加的每个连接符重复以上过程。当您将指针移到形状上时,连接结点和连接符显示为红色圆圈。未附加的连接符显示为浅蓝色(几乎透明)圆圈。
4.完成添加所有线条或连接符后,按 Esc。
1.选择要向其添加箭头的线条。
如果您要将箭头添加到多个线条,请选择第一个线条,然后在按住 Ctrl 的同时选择其他线条。
2.在&绘图工具&下,在&格式&选项卡上的&形状样式&组中,单击&形状轮廓&旁边的箭头。
3.指向&箭头&,然后单击所需的箭头样式。
要创建自定义箭头样式,请单击&其他箭头&,然后选择所需的选项。&
绘制任意多边形
1.请执行下列操作之一:
对于 Office Excel 2007,在&插入&选项卡上的&插图&组中,单击&形状&。&
2.在&线条&下,执行下列操作之一:&
●要绘制一个既具有曲线段又具有直线段的形状,请单击&任意多边形& 。
3.单击文档中的任意位置,然后拖动以进行绘制。&
要绘制直线段,请单击某一位置,将指针移动到另一位置,然后再次单击。
4.要结束形状,请执行下列操作之一:
●要使形状保持开放状态,可随时双击。
●要使形状闭合,请在接近其起始点的位置单击。
●要将任一形状转换为任意多边形,请单击该形状,然后在&绘图工具&下的&格式&选项卡上,单击&插入形状&组中的&编辑形状& ,再单击&转换为任意多边形&。之后您便可以重新绘制或调整该形状。
●要调整任意多边形以使其看起来更加平滑,请单击该任意多边形,然后在&绘图工具&下,在&格式&选项卡上的&插入形状&组中,单击&编辑形状& ,然后单击&编辑顶点&。拖动勾勒出形状轮廓的顶点。顶点是曲线的结束点或任意多边形中两个线段的相交点,由黑点表示。
●要使绘制细节更为方便,请将显示比例增加到 200%。在&视图&选项卡上的&显示比例&组中,单击&显示比例&,然后单击&200%&。
●将指针设置为&控制面板&中可用的最低速度。如果您以较慢的速度进行绘制,就可以更好地进行控制。
删除一个或多个线条或连接符
●单击要删除的线条或连接符,然后按 Delete。
如果您要删除多个线条或连接符,请选择第一个线条,按住 Ctrl 同时选择其他线条,然后按 Delete。
1.选择要删除其中的箭头的线条。
如果您要删除多个线条中的箭头,请选择第一个线条,然后在按住 Ctrl 的同时选择其他线条。
2.在&绘图工具&下,在&格式&选项卡上的&形状样式&组中,单击&形状轮廓&旁边的箭头。
3.指向&箭头&,然后单击&箭头样式 1&(无箭头)。
删除任意多边形
●单击要删除的任意多边形,然后按 Delete。
如果您要删除多个形状,请选择第一个形状,按住 Ctrl 同时选择其他形状,然后按 Delete。
Microsoft Office下载:
软件名称:Microsoft Office 2007 简体中文版
大小:589.50MB版本:简体中文版类别:办公软件
语言:中文使用平台:Win_xp/Win7/Win8/Ubuntu查看: 273|回复: 5
[VBA程序]:直线顶点信息输到excel中怎样排序?
在线时间 小时
该用户从未签到
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
我想把我在cad图形中所选择的所有直线的顶点信息(起点、终点)输到excel表中,但是我发现所列出的数据不是我想像的顺序。我画的直线都是竖直的(起点、终点x相同,y不同),从左向右的(就是x值逐渐增大),但是我查看导到表中的直线x坐标,有些线没有按照顺序,x小的直线排到x大的下一条线后面去了。这是怎么回事?我选择线的顺序是每一行从左到右,选了5行。恳请大侠指正,谢谢!
Public Sub linetoexcel()
&&Dim ExcelApp As New Excel.Application
&&Dim ExcelWkbk As Excel.Workbook
&&Set ExcelWkbk = ExcelApp.Workbooks.Add
&&Dim sel As AcadSelectionSet
&&Dim i As Integer
&&On Error Resume Next
&&Set sel = ThisDrawing.SelectionSets.Add(&ssel&)
&&If Err Then
& & Err.Clear
& & Set sel = ThisDrawing.SelectionSets.Item(&ssel&)
&&On Error GoTo 0
&&sel.SelectOnScreen
&&Dim Ent As AcadEntity
&&Dim pt1 As Variant, pt2 As Variant
&&MsgBox ExcelWkbk.Name
&&With ExcelWkbk.Worksheets(&sheet1&)
&&For Each Ent In sel
& & If UCase(Ent.ObjectName) = &ACDBLINE& Then
& && &&&.Range(&A& & i) = &l& & i
& && &&&pt1 = Ent.StartPoint
& && &&&pt2 = Ent.EndPoint
& && &&&.Range(&B& & i) = pt1(0)
& && &&&.Range(&c& & i) = pt1(1)
& && &&&.Range(&D& & i) = pt2(0)
& && &&&.Range(&E& & i) = pt2(1)
& && &&&i = i + 1
& && &Else
& & End If
&&Next Ent
&&End With
&&ExcelApp.ActiveWorkbook.SaveAs &e:yy\vba\book1.xls&
&&ExcelApp.Workbooks.Close
&&ExcelApp.Quit
&&sel.Delete
运行后,excel表中数据:
l2& & & & 362.4241116& & & & 373.1835472& & & & 362.4241116& & & & 373.7570472
l3& & & & 360.4241116& & & & 373.2168806& & & & 360.4241116& & & & 373.7570472
l4& & & & 376.8741116& & & & 372.9427139& & & & 376.8741116& & & & 373.7570472
l5& & & & 373.5641116& & & & 372.9978806& & & & 373.5641116& & & & 373.7570472
l6& & & & 371.5641116& & & & 373.0312139& & & & 371.5641116& & & & 373.7570472
l7& & & & 378.8741116& & & & 372.9093806& & & & 378.8741116& & & & 373.7570472
l8& & & & 390.0141116& & & & 372.7903806& & & & 390.0141116& & & & 373.7570472
l9& & & & 388.0141116& & & & 373.7570472& & & & 388.0141116& & & & 372.7570472
l10& & & & 393.3241116& & & & 372.8455472& & & & 393.3241116& & & & 373.7570472
l11& & & & 395.3241116& & & & 372.8788806& & & & 395.3241116& & & & 373.7570472
l12& & & & 406.4641116& & & & 373.0645472& & & & 406.4641116& & & & 373.7570472
l13& & & & 404.4641116& & & & 373.0312139& & & & 404.4641116& & & & 373.7570472
l14& & & & 411.7741116& & & & 373.1530472& & & & 411.7741116& & & & 373.7570472
l15& & & & 409.7741116& & & & 373.1197139& & & & 409.7741116& & & & 373.7570472
l16& & & & 420.9141116& & & & 373.3053806& & & & 420.9141116& & & & 373.7570472
l17& & & & 422.9141116& & & & 373.3387139& & & & 422.9141116& & & & 373.7570472
l18& & & & 358.4241116& & & & 370.805545& & & & 358.4241116& & & & 371.3123783
l19& & & & 360.4241116& & & & 370.7722117& & & & 360.4241116& & & & 371.3123783
l20& & & & 369.5641116& & & & 370.6198783& & & & 369.5641116& & & & 371.3123783
l21& & & & 376.8741116& & & & 370.498045& & & & 376.8741116& & & & 371.3123783
l22& & & & 374.8741116& & & & 370.5313783& & & & 374.8741116& & & & 371.3123783
l23& & & & 371.5641116& & & & 370.586545& & & & 371.5641116& & & & 371.3123783
l24& & & & 386.0141116& & & & 370.3457117& & & & 386.0141116& & & & 371.3123783
l25& & & & 388.0141116& & & & 371.3123783& & & & 388.0141116& & & & 370.3123783
l26& & & & 393.3241116& & & & 370.4008783& & & & 393.3241116& & & & 371.3123783
l27& & & & 391.3241116& & & & 370.367545& & & & 391.3241116& & & & 371.3123783
l28& & & & 402.4641116& & & & 370.5532117& & & & 402.4641116& & & & 371.3123783
l29& & & & 407.7741116& & & & 370.6417117& & & & 407.7741116& & & & 371.3123783
l30& & & & 404.4641116& & & & 370.586545& & & & 404.4641116& & & & 371.3123783
l31& & & & 409.7741116& & & & 370.675045& & & & 409.7741116& & & & 371.3123783
l32& & & & 420.9141116& & & & 370.8607117& & & & 420.9141116& & & & 371.3123783
l33& & & & 418.9141116& & & & 370.8273783& & & & 418.9141116& & & & 371.3123783
l34& & & & 356.192092& & & & 367.6595657& & & & 356.192092& & & & 367.4228991
l35& & & & 360.192092& & & & 367.6595657& & & & 360.192092& & & & 367.3562324
l36& & & & 375.192092& & & & 367.6595657& & & & 375.192092& & & & 367.1062324
l37& & & & 379.192092& & & & 367.6595657& & & & 379.192092& & & & 367.0395657
l38& & & & 393.592092& & & & 367.6595657& & & & 393.592092& & & & 366.7995657
l39& & & & 392.192092& & & & 367.6595657& & & & 392.192092& & & & 366.8228991
l40& & & & 389.192092& & & & 367.6595657& & & & 389.192092& & & & 366.8728991
l41& & & & 401.992092& & & & 367.6595657& & & & 401.992092& & & & 366.6595657
l42& & & & 400.592092& & & & 367.6595657& & & & 400.592092& & & & 366.6828991
l43& & & & 411.992092& & & & 367.6595657& & & & 411.992092& & & & 366.8262324
l44& & & & 415.992092& & & & 367.6595657& & & & 415.992092& & & & 366.8928991
l45& & & & 434.992092& & & & 367.6595657& & & & 434.992092& & & & 367.2095657
l46& & & & 430.992092& & & & 367.6595657& & & & 430.992092& & & & 367.1428991
l47& & & & 357.592092& & & & 364.7454142& & & & 357.592092& & & & 364.4854142
l48& & & & 361.592092& & & & 364.7454142& & & & 361.592092& & & & 364.4187475
l49& & & & 376.592092& & & & 364.7454142& & & & 376.592092& & & & 364.1687475
l50& & & & 380.592092& & & & 364.7454142& & & & 380.592092& & & & 364.1020809
l51& & & & 390.592092& & & & 364.7454142& & & & 390.592092& & & & 363.9354142
l52& & & & 394.992092& & & & 364.7454142& & & & 394.992092& & & & 363.8620809
l53& & & & 393.592092& & & & 364.7454142& & & & 393.592092& & & & 363.8854142
l54& & & & 401.992092& & & & 364.7454142& & & & 401.992092& & & & 363.7454142
l55& & & & 403.392092& & & & 364.7454142& & & & 403.392092& & & & 363.7687475
l56& & & & 413.392092& & & & 364.7454142& & & & 413.392092& & & & 363.9354142
l57& & & & 417.392092& & & & 364.7454142& & & & 417.392092& & & & 364.0020809
l58& & & & 432.392092& & & & 364.7454142& & & & 432.392092& & & & 364.2520809
l59& & & & 436.392092& & & & 364.7454142& & & & 436.392092& & & & 364.3187475
l60& & & & 346.192092& & & & 361.4637004& & & & 346.192092& & & & 361.3937004
l61& & & & 350.192092& & & & 361.4637004& & & & 350.192092& & & & 361.3270338
l62& & & & 369.192092& & & & 361.4637004& & & & 369.192092& & & & 361.0103671
l63& & & & 365.192092& & & & 361.4637004& & & & 365.192092& & & & 361.0770338
l64& & & & 382.192092& & & & 361.4637004& & & & 382.192092& & & & 360.7937004
l65& & & & 383.592092& & & & 361.4637004& & & & 383.592092& & & & 360.7703671
l66& & & & 379.192092& & & & 361.4637004& & & & 379.192092& & & & 360.8437004
l67& & & & 390.592092& & & & 361.4637004& & & & 390.592092& & & & 360.6537004
l68& & & & 391.992092& & & & 361.4637004& & & & 391.992092& & & & 360.6303671
l69& & & & 401.992092& & & & 361.4637004& & & & 401.992092& & & & 360.4637004
l70& & & & 405.992092& & & & 361.4637004& & & & 405.992092& & & & 360.5303671
l71& & & & 420.992092& & & & 361.4637004& & & & 420.992092& & & & 360.7803671
l72& & & & 424.992092& & & & 361.4637004& & & & 424.992092& & & & 360.8470338您好!您暂时不能浏览帖子的全部内容,请&&|&没有帐号?&
本文地址&<button type="submit" class="pn" onclick="setCopy('[VBA程序]:直线顶点信息输到excel中怎样排序?\nhttp://bbs.xdcad.net/thread--1.html', '本文地址已复制到剪贴板用快捷键 Ctrl+V 粘贴到 QQ、MSN 里推荐给你的好友吧!')">推荐给好友
在线时间 小时
该用户从未签到
通过选择集选择的物体是乱的,你可以使用代码一个一个添加,按从左到右,从上到下的顺序逐个向选择集内添加。或者也可以读取数据后利用代码循环重新排列。
不知道斑竹有没有更好的方法?您好!您暂时不能浏览帖子的全部内容,请&&|&没有帐号?&
在线时间 小时
该用户从未签到
是的,我想按这样的顺序选择实体(四行竖向的短线段):从第一行开始,从左向右读取,然后是第二行。您好!您暂时不能浏览帖子的全部内容,请&&|&没有帐号?&
在线时间 小时
该用户从未签到
全部选择进去后,用代码实现重新排序。您好!您暂时不能浏览帖子的全部内容,请&&|&没有帐号?&
在线时间 小时
TA的每日心情开心 09:16签到天数: 63 天连续签到: 30 天[LV.6]常住居民II
TA现在正在上班技术知识 5 分管理水平 5 分工作态度 5 分
您好!您暂时不能浏览帖子的全部内容,请&&|&没有帐号?&
在线时间 小时
该用户从未签到
我觉得应该编程后按顺序选取各直线,你不妨试一下您好!您暂时不能浏览帖子的全部内容,请&&|&没有帐号?&
第二个礼包:3D豆
第三个礼包:5D豆
登录后即可领取!
Powered by2195人阅读
Arcpy(10)
看书的时候,遇见了如下数据:
原书中是用VB写的宏,然后存储到txt文件中。
试着用python加Arcpy脚本处理了一下,python对excel处理的见链接,这里粘贴一下处理的代码:
import xlrd
import xlwt
import arcpy
xlsPath = r&C:\Users\Administrator\Desktop\Polygon.xls&
data = xlrd.open_workbook(xlsPath)
table = data.sheets()[0]#通过索引顺序获取
cols = table.col_values(5)
nrows = table.nrows
point = arcpy.Point()
array = arcpy.Array()
polygonGeometryList = []
for i in range(1,nrows):
str = table.cell(i,5).value
points = str.split(u&#39;;&#39;)
for j in points:
xy = j.split(&#39;,&#39;)
print xy[0]
print xy[1]
print &#39;\n&#39;
point.X = float(xy[0]);point.Y = float(xy[1])
array.add(point)
polygon = arcpy.Polygon(array)
polygonGeometryList.append(polygon)
array.removeAll()
arcpy.CopyFeatures_management(polygonGeometryList, &d:\\polygon.shp&)
print &#39;over&#39;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:276554次
积分:3466
积分:3466
排名:第6765名
原创:72篇
评论:103条
文章:12篇
阅读:29474
(1)(2)(2)(1)(3)(3)(5)(2)(1)(3)(3)(1)(3)(4)(1)(3)(1)(3)(6)(3)(6)(16)(1)出个题:如何利用散点图,产生大量的随机点,使其落入给定多边形内?
阅读权限95
在线时间 小时
  喜讯、喜讯:
  呵呵,开发成功了,无论是凸多边形,凹多边形,顺时针、逆时针,都可以进行填充了……
  下面先上一组图。
阅读权限95
在线时间 小时
1.jpg (78.03 KB, 下载次数: 0)
20:26 上传
2.jpg (99.36 KB, 下载次数: 0)
20:26 上传
3.jpg (85.28 KB, 下载次数: 0)
20:26 上传
4.jpg (109.05 KB, 下载次数: 0)
20:26 上传
阅读权限95
在线时间 小时
  上一个正式版1.0的附件:
(81.12 KB, 下载次数: 60)
20:28 上传
点击文件名下载附件
阅读权限95
在线时间 小时
  正式版1.0的填充代码采用了更为通用的不同的算法,适应性更好,相关代码如下:
Public Sub TianChong1() '凹凸通用填充
With 多边形
& & If .Range(&a2&).Value = && Then MsgBox &请输入顶点数!&, , &友情提示&: Exit Sub
& & If Not (IsNumeric(.Range(&a2&).Value)) Then MsgBox &请输入数值!&, , &友情提示&: Exit Sub
& & If .Range(&a14&).Value = && Then MsgBox &请输入随机点数!&, , &友情提示&: Exit Sub
& & If Not (IsNumeric(.Range(&a2&).Value)) Then MsgBox &请输入数值!&, , &友情提示&: Exit Sub
& & .Range(&d18:e& & Rows.Count).ClearContents
& & Dim xx, yy, x#, y#, X1#, Y1#, X2#, Y2#, a#, b#, i&, j&, k&, n%, m&, xmin#, xmax#, ymin#, ymax#, sjd, t!
& & Dim ddxmin#, ddxmax#, ddymin#, ddymax#, jds%, jdx# '交点数
& & n = .Range(&a2&).Value '顶点数
& & m = .Range(&a14&).Value '随机点数
& & xx = .Range(&d2&).Resize(n + 1)
& & yy = .Range(&e2&).Resize(n + 1)
& & Call DuoBianXing(xx, yy, n)
& & t = Timer: k = 0
& & xmin = WorksheetFunction.Min(xx): xmax = WorksheetFunction.Max(xx) '界定随机点产生的最大相关范围
& & ymin = WorksheetFunction.Min(yy): ymax = WorksheetFunction.Max(yy)
& & ReDim sjd(1 To m, 1 To 2) '存储符合要求的随机点
& & j = 0
& & Do While j & m
100:
& && &&&x = xmin + Rnd() * (xmax - xmin) '产生平面中的随机点
& && &&&y = ymin + Rnd() * (ymax - ymin)
& && &&&jds = 0
& && &&&k = k + 1
& && &&&For i = 1 To n
& && && && &X1 = xx(i, 1): Y1 = yy(i, 1)
& && && && &X2 = xx(i + 1, 1): Y2 = yy(i + 1, 1)
& && && && &If X1 & X2 Then
& && && && && & ddxmin = X1: ddxmax = X2
& && && && &Else
& && && && && & ddxmin = X2: ddxmax = X1
& && && && &End If
& && && && &If Y1 & Y2 Then
& && && && && & ddymin = Y1: ddymax = Y2
& && && && &Else
& && && && && & ddymin = Y2: ddymax = Y1
& && && && &End If
& && && && &If X1 = X2 And Y1 && Y2 Then '边的方程为x=a时(垂直)
& && && && && & If x & X1 And y & ddymin And y & ddymax Then jds = jds + 1
& && && && &ElseIf X1 && X2 And Y1 && Y2 Then '边的方程为y=ax+b时(倾斜)
& && && && && & If x & ddxmin And y & ddymin And y & ddymax Then
& && && && && && &&&a = (Y2 - Y1) / (X2 - X1): b = (Y1 * X2 - Y2 * X1) / (X2 - X1) '边的斜率、纵截距
& && && && && && &&&jdx = (y - b) / a '交点横坐标
& && && && && && &&&If jdx & x Then jds = jds + 1 '交点在随机点的左侧时,因为是水平向左的射线
& && && && && & End If
& && && && && & '由于显示的特点,忽略随机点纵坐标等于顶点纵坐标的情况
& && && && &ElseIf X1 && X2 And Y1 = Y2 Then '边的方程为y=b时(水平)
& && && && && & '由于显示的特点,忽略随机点纵坐标等于顶点纵坐标的情况
& && && && &End If
& && &&&Next i
& && &&&If jds Mod 2 = 1 Then j = j + 1: sjd(j, 1) = x: sjd(j, 2) = y
& & Loop
.Range(&d18&).Resize(m, 2) = sjd
End With
MsgBox &共尝试落点& & k & &次,命中率:& & Format(m / k, &0.00%&) & &,用时:& & Format(Timer - t, &0.0000&) & &秒。&, , &友情提示&
End Sub复制代码
阅读权限95
在线时间 小时
  粘贴几组测试顶点坐标:
9个顶点4个顶点13-218181986-9492-946-49-7516-5-2
4个顶点4个顶点-211181916-9964-216
阅读权限95
在线时间 小时
必要的说明:
细心的人会发现,我在54楼的代码有两种情况其实没有写,忽略了……呵呵
这也是我称呼为“正式版1.0”的原因:是可以凑合着用了,但是不是十分完善……
阅读权限95
在线时间 小时
54楼代码的核心算理如下:
相关部分:
“水平/垂直交叉点数判别法(适用于任意多边形包括凹凸边形)
注意到如果从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形外部,则交点个数必为偶数(0也在内)。所以,我们可以顺序考虑多边形的每条边,求出交点的总个数。还有一些特殊情况要考虑……”
我忽略的正是特殊情况……
阅读权限95
在线时间 小时
& & & & & & & &
  为什么我忽略了特殊情况,却可以得到不错的效果呢?
  首先,所谓特殊情况即是随机点向左的水平射线恰好经过多边形顶点的情况,此时,交点会被计算两次,不会产生奇数的情况,应当特殊处理,我想到的办法是:向右上偏移很小一个度数,绕过这个点即可,但是代码将很是冗长、复杂;
  其次,为何忽略,一是测试基本代码是否能正常运行,二才是意外发现,想了想,原因在于屏幕显示,散点图的每一个点最小像素是2,特殊情况不处理的话,多边形顶点所在水平线上是不会落有填充点的,也就是说,在内部会有一些水平线(未填充的)出现,但是没有,估计就是显示时2像素把“邻居”给挤满的缘故吧……
  呵呵……
  其实,还有个原因,就是我的坐标轴限定最大最小为10和-10,这也是一个人为原因……
  呵呵,以后有功夫了,再完善,说不定来个“正式版2.0”,不过,从显示效果上来说,可能差别不大……
阅读权限95
在线时间 小时
已知多边形n个点的坐标,就可以直接画出闭合图形,然后当然就可以任意改变这个图形的颜色属性。
Sub Macro1()
' Macro1 Macro
' 宏由 User 录制,时间:
& & With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 232.5, 127.5)
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 345.75, 128.25
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 384.75, 207#
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 282.75, 291#
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 309.75, 218.25
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 175.5, 198.75
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 313.5, 189#
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 178.5, 165#
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 269.5, 154.5
& && &&&.AddNodes msoSegmentLine, msoEditingAuto, 232.5, 127.5
& && &&&.ConvertToShape.Select
& & End With
& & Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
阅读权限95
在线时间 小时
香川群子 发表于
已知多边形n个点的坐标,就可以直接画出闭合图形,然后当然就可以任意改变这个图形的颜色属性。
Sub Mac ...
看来,我这是舍近求远了……自个给自个下了一个套……
不过,复习了许多关于多边形以及平面向量的知识……
多谢您指点……
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师}

我要回帖

更多关于 maya怎么创建多边形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信