CorelDRAW VBA - 基于矩形左下角坐标创建另一个矩形或文本

公告


本专栏的相关的文章已不在简书同步更新,请直接访问 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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容