实现绘制直线旋转js中实现代码说明效果展示
实现绘制直线旋转

在网页中旋转实体。教程的帮助完整例子,在控件安装目录的Sample\Ie\ iedemoRotate.htm中。


主要用到函数说明:


_DMxDrawX::GetDatabase


返回控件的数据库对象。


var database = mxOcx.GetDatabase();


_DMxDrawX::DrawLine


绘制一个直线。返回的是直线id。详细说明如下:


参数说明
DOUBLE dX1

直线的开始点x坐标

DOUBLE dY1

直线的开始点y坐标

DOUBLE dX2

直线的结束点x坐标

DOUBLE dY2

直线的结束点y坐标


IMxDrawDatabase::ObjectIdToObject


实体id返回实体对象。


var pEnt = database.ObjectIdToObject(id);


_DMxDrawX::NewPoint


新创建IMxDrawPoint对象。


IMxDrawEntity::Rotate


旋转一个对象。详细说明如下:


参数说明
[in] IMxDrawPoint* basePoint

旋转基点

[in] DOUBLE dRotationAngle

旋转角度

js中实现代码说明

在网页中引用控件,clsid: 74A777F8-7A8F-4e7c-AF47-7074828086E2是控件的GUID,浏览器通过这个clsid来判断访问网页的客户机是否已经安装控件。控件程序可以做成CAB安装包,并可进行数据签名,方便网页中自动安装下载。详细参考例子:http://www.mxdraw.com/iedemo.html


   <object classid="clsid: 74A777F8-7A8F-4e7c-AF47-7074828086E2" id="MxDrawXCtrl"  codebase="http://www.mxdraw.com/MxDrawX.CAB#version=1.0.0.1" width=100% height=90%> 
     <param name="_Version" value="65536">
     <param name="_ExtentX" value="24262">
     <param name="_ExtentY" value="16219">
     <param name="_StockProps" value="0">
<!-- <param name="DwgFilePath" value="http://www.mxdraw.com/downland/test.dwg"> -->
<param name="IsRuningAtIE" value="1">
<param name="EnablePrintCmd" value="1">
 
<param name="ShowStatusBar" value="1">
<param name="ShowMenuBar" value="1">
<param name="ShowToolBars"  value="1">
<param name="ShowCommandWindow" value="1">
<param name="ShowModelBar" value="1">
<param name="IniFilePath" value="AutoActive=N,LoadMrx=PropertyEditor.mrx">
 
                        <param name="ToolBarFiles" value="MxDraw-ToolBar.mxt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">
 
  </object>
<script>


设置命令事件回调函数


var mxOcx = document.getElementById("MxDrawXCtrl");


在命令事件交互旋转实体,该事件将会被网页中的按钮点击触发执行相对应的旋转事件Rotate()。


首先需返回数据库对象,其次绘制一条直线(用户可以根据自己需求绘制所需的实体,该教程演示绘制一条直线),再次实体id返回实体对象,最后设置旋转基点与旋转角度,具体代码如下所示。


function Rotate()
{
    //返回控件的数据库对象
    var database = mxOcx.GetDatabase();
    //绘制一个直线
    //参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标
    var id = mxOcx.DrawLine(10, 10, 20, 10);
    //实体id返回实体对象
    var pEnt = database.ObjectIdToObject(id);
    //新创建IMxDrawPoint对象
    var point = mxOcx.NewPoint();
    point.x = 10;
    point.y = 10;
    //旋转一个对象,参数一为旋转基点,参数二为旋转角度
    pEnt.Rotate(point, 45 * 3.14159265 / 180.0);
    mxOcx.ZoomAll();
}
效果展示

在兼容模式下打开网页(谷歌支持4.5前的版本,火狐最新版本不支持),运行控件。效果如下:


rotate1.png


用户可以通过点击旋转按钮,使绘制的直线旋转一定的角度(用户可以自定义旋转角度,该教程演示的为旋转45°)。如下图所示:


rotate2.png

MxDraw
MxDraw是由梦想凯德基于AutoDesk CAD平台开发的软件,拥有完全自主的核心技术和知识产权。MxDraw致力于为各企业提供最优秀的CAD平台整体解决方案。
技术服务
TEL:400-888-5703
185-8173-1060
QQ:827867134,6884123
产品购买
TEL:400-888-5703
185-8173-1060
QQ:827867134,6884123
用户交流
QQ群1:827867134
QQ群2:827867134
QQ群3:827867134