返回介绍

指南

MxCAD API 文档

3. 多段线

发布于 2024-07-31 21:40:00 字数 4181 浏览 0 评论 0 收藏 0

多段线

我们可以通过实例化一个 McDbPolyline() 对象创建多段线。

多段线是由弧和线组成的多段连接线。用户可以用任意线型绘制多段线。绘制了至少一条多段线后,可以调用 erase() 方法来删除先前的线段。当绘制两个或两个以上的多段线后,可以调用 isClosed() 方法闭合当前多条线段,绘制以第一条线段的起点为终点的线段。多段线还可以调用 addVertexAt() 方法设置多段线的顶点位置、线段宽度以及圆弧凸度等。结合命令模式,可实现添加顶点、删除顶点、转换为圆弧、转换为直线等完整功能。

点击 McDbPolyline() 查看详细属性和方法说明。

import { MxCpp, McGePoint3d, McDbPolyline } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
const polyline = new McDbPolyline()
polyline.isClosed = true
polyline.constantWidth = 10
polyline.addVertexAt(new McGePoint3d(800, 300, 0))
polyline.addVertexAt(new McGePoint3d(900, 300, 0))
polyline.addVertexAt(new McGePoint3d(900, 400, 0))
mxcad.drawEntity(polyline)

:::demo

import {  McObject, McDbPolyline, McGePoint3d, McCmColor } from "mxcad"

export default () => {
    const mxcad = new McObject()
    mxcad.create({
      canvas: "#myCanvas",
      locateFile: (fileName: string)=> {
            // CDN 加载必须使用wasm/2d-st中的资源、因为github的限制无法使用wasm/2d 资源
            // 需要使用wasm/2d需要遵循浏览器同源策略或使用其他手段规避浏览器同源策略
            return "https://unpkg.com/mxcad/dist/wasm/2d-st/" + fileName
      },
      // 加载字体的目录位置
      fontspath: self.location.origin + "/mxcad_docs/fonts",
      // 加载转换后的图纸文件
      fileUrl: self.location.origin + "/mxcad_docs/test.mxweb",
      onOpenFileComplete: ()=>{
            const polyline = new McDbPolyline()
            polyline.isClosed = true
            polyline.constantWidth = 5
            polyline.addVertexAt(new McGePoint3d(800, 300, 0))
            polyline.addVertexAt(new McGePoint3d(900, 300, 0))
            polyline.addVertexAt(new McGePoint3d(900, 400, 0))
            mxcad.drawEntity(polyline)

            mxcad.zoomAll()
            mxcad.zoomScale(0.8)
      }
    })
    return (<div style="height: 500px; overflow: hidden;"><canvas id="myCanvas"></canvas>
    </div>)
}

:::

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文