返回介绍

指南

MxCAD API 文档

2. 直线

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

直线

我们可以通过实例化一个 McDbLine() 对象创建直线。通过设置 McDbLine() 实例对象的起始点 startPoint 、结束点 endPoint 绘制直线,也可以直接利用 McDbLine() 的构造函数直接设置直线起始点与结束点,如:new McDbLine(x1, y1, z1, x2, y2, z2),还能根据自身需求设置直线颜色 trueColor 、线性比例 linetypeScale 等多种属性。

此外,也可以通过 mxcad 实例对象提供的 drawLine() 方法直接绘制直线。

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

import { MxCpp, McCmColor, McDbLine, McGePoint3d } from "mxcad"

const mxcad = MxCpp.getCurrentMxCAD()
const line = new McDbLine(0, 0, 0, -80, -80, 0)
line.trueColor = new McCmColor(255, 0, 0)
mxcad.drawEntity(line)

const line_1 = new McDbLine()
let pt1 = new McGePoint3d(100,100,0)
let pt2 = new McGePoint3d(0,0,0)
line_1.startPoint = pt1
line_1.endPoint = pt2
mxcad.drawEntity(line_1)

mxcad.drawLine(pt1.x, pt1.y, pt2.x, pt2.y)

:::demo

import {  McObject, McDbLine, 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: ()=>{
            let line_1 = new McDbLine()
            let pt1 = new McGePoint3d(1000,200,0)
            let pt2 = new McGePoint3d(-1000,-200,0)
            line_1.startPoint = pt1
            line_1.endPoint = pt2
            line_1.trueColor = new McCmColor(0, 255, 0)
            mxcad.drawEntity(line_1)

            let line_2 = new McDbLine(1000,500,0,-1000,-500,0)
            line_2.trueColor = new McCmColor(255,0, 0)
            line_2.linetypeScale = 0.4
            mxcad.drawEntity(line_2)

            mxcad.drawLine(1000,800,-1000,-800)

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

:::

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

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

发布评论

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