CorelDRAW VBA探秘

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的左下角来创建的:

coreldraw-vba-create-rectangle-base-on-left-point-1

如果指定了 doc.ReferencePoint = cdrCenter 中心对齐,那么坐标系的位置会发生变化,运行效果如下图所示:

coreldraw-vba-create-rectangle-base-on-left-point-2

小结

左下角坐标其实就是图形的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/

上一篇下一篇

猜你喜欢

热点阅读