返回介绍

指南

MxCAD API 文档

6. 椭圆

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

椭圆

我们可以通过实例化一个 McDbEllipse() 对象创建椭圆。通过设置 McDbEllipse() 实例对象的圆心 center 、主轴向量 majorAxis、副轴向量 minorAxis 或短轴与长轴的比例 radiusRatio 绘制椭圆,也可以通过设置实例对象的开始角度 startAngle 和结束角度 endAngle 绘制椭圆弧。

此外,还可以通过 mxcad 实例对象提供的 drawEllipse() 方法直接绘制椭圆,drawEllipseArc() 方法直接绘制椭圆弧。

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

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

import { MxCpp, McGePoint3d, McDbEllipse, McCmColor, McGeVector3d } from "mxcad"

const mxcad = MxCpp.getCurrentMxCAD()
const ellipse = new McDbEllipse()
ellipse.center = new McGePoint3d(-200, -200),
ellipse.majorAxis = new McGeVector3d(0, 300, 0)
ellipse.minorAxis = new McGeVector3d(33, 0, 0)
ellipse.radiusRatio = 0.5
ellipse.startAngle = Math.PI / 2
ellipse.endAngle = Math.PI * 3 / 2
ellipse.trueColor = new McCmColor(255, 233, 0)
mxcad.drawEntity(ellipse)

mxcad.drawEllipse(0, -200, 200, 0, 1.5)

mxcad.drawEllipseArc(200, -200, 200, 0, 1.5, 100, 650)

:::demo

import {  McObject, McDbEllipse, McGePoint3d, McCmColor, McGeVector3d } 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 ellipse = new McDbEllipse()
            ellipse.center = new McGePoint3d(-200, -200),
            ellipse.majorAxis = new McGeVector3d(0, 300, 0)
            ellipse.radiusRatio = 0.5
            ellipse.trueColor = new McCmColor(255, 233, 0)
            mxcad.drawEntity(ellipse)

            const ellipse_arc = new McDbEllipse()
            ellipse_arc.center = new McGePoint3d(-380, -200),
            ellipse_arc.majorAxis = new McGeVector3d(0, 150, 0)
            ellipse_arc.minorAxis = new McGeVector3d(280, 0, 0)
            ellipse_arc.startAngle = Math.PI / 2
            ellipse_arc.endAngle = Math.PI * 3 / 2
            ellipse_arc.trueColor = new McCmColor(0, 255, 255)
            mxcad.drawEntity(ellipse_arc)

            mxcad.drawEllipse(0, -200, 200, 0, 1.5)

            mxcad.drawColor = new McCmColor(0, 255, 0)       
            mxcad.drawEllipseArc(200, -200, 200, 0, 1.5, 100, 650)

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

:::

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

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

发布评论

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