CorelDRAW VBA - 基于矩形左下角坐标创建另一个矩形
2018-01-10 本文已影响0人
成都超平面科技
公告
本专栏的相关的文章已不在简书同步更新,请直接访问 VBA探秘 官方网站或关注微信公众号获取最新文章动态。
coreldraw-vba-create-rectangle-base-on-left-point目的
这篇教程将教会你使用 CorelDRAW VBA代码基于某个矩形的左下角坐标来创建另一个矩形(或者其他你想创建的图形或者美术字文本)。
代码演示
Sub main()
' 变量声明
Dim doc As Document, rectangle1 As Shape, rectangle2 As Shape
' 创建一个新文档
Set doc = CreateDocument
doc.Unit = cdrMillimeter
'doc.ReferencePoint = cdrCenter ' 中心对齐(如果是中心对齐,则坐标系数值会不一样,可以设置为此值来观察效果)
doc.ReferencePoint = cdrBottomLeft ' 底部靠左对齐
' 创建矩形1
Set rectangle1 = ActiveDocument.ActiveLayer.CreateRectangle2(0, 0, 50, 40)
ActiveWindow.ActiveView.ToFitPage
MsgBox "rectangle1 PositionX is:" & rectangle1.PositionX & ", PositionY is:" & rectangle1.PositionY
' 创建矩形2(基于矩形1的左下角坐标)
Set rectangle2 = ActiveDocument.ActiveLayer.CreateRectangle2(rectangle1.PositionX, rectangle1.PositionY - rectangle1.TopY, 50, 40)
ActiveWindow.ActiveView.ToFitPage
MsgBox "rectangle2 PositionX is:" & rectangle2.PositionX & ", PositionY is:" & rectangle2.PositionY
End Sub
运行结果
如果指定了 doc.ReferencePoint = cdrBottomLeft
底部靠左对齐,则运行效果如下,可以看到矩形2是基于矩形1的左下角来创建的:
如果指定了 doc.ReferencePoint = cdrCenter
中心对齐,那么坐标系的位置会发生变化,运行效果如下图所示:
小结
左下角坐标其实就是图形的PositionX不变,改变PositionY的值。既然是左下角坐标,那么Y坐标必然是减去参考图形的TopY值。
其他的,比如右下角、左上角、右上角、中心等等,无非就是根据图形的PositionX、PositionY、LeftX和TopY属性来计算。
需要注意的是:图形的坐标系具体值,跟文档的参考点有关。查看文档属性的详细信息,请查看《CorelDRAW VBA - Document文档属性设置》这篇文章。
原创声明:本文首发于个人CorelDRAW VBA博客,请尊重文章版权。
转载请注明原文链接:http://www.cdrvba.com/coreldraw-vba-create-rectangle-base-on-left-point/