Fast Computer Aided Design Platform
快速CAD开发平台
绘图相关函数接口说明
一、绘图代码详解
在FxCAD里,约定了每一个对象模型都是在一个虚拟的画布里,这个画布的大小由 abs(X1-X0)和abs(Y1-Y0)决定
override public void DrawGraphics(Graphicsg) { switch (OBJ_STATE) { case(int)LibObject.ObjectState.Normal: { //正常状态,对象的默认显示 this.DrawNode(g, LinePen); break; } case(int)LibObject.ObjectState.Selected: { //对象被选中状态(即鼠标点击时) this.DrawNode(g, LinePen_Selected); //绘制连接点 this.DrawSelectedRect(g, RectPen); //绘制边框 break; } case(int)LibObject.ObjectState.Linking: { //对象处于连接状态 this.DrawNode(g, LinePen_Selected); //绘制连接点 this.DrawSelectedRect(g, RectPen); //绘制边框 break; } } } | ![]() (正常状态) ![]() (选中状态) ![]() ![]() (连接状态) |
private voidDrawSelectedRect(Graphics g, Pen RectPen)
{
//绘制选中时候的边框
g.DrawRectangle(RectPen, P0.X - 10,P0.Y - 10, Weight + 20, Height + 20);
}
二、对象参数设置相关函数
override public void SetPointP0(floatx, float y)
{
base.SetPointP0(x,y);
this.SetArg();//设置对象左上脚坐标
}
override public void SetPointP1(floatx, float y)
{
//如果需要的话,可以在这里设置对象右下脚坐标
}
三、鼠标是否点中对象
override public bool CheckMouseInObject(floatx, float y)
{
//判断鼠标是否在对象的有效区域
if(x >= P0.X && x <= P1.X && y >= P0.Y && y<= P1.Y)
returntrue;
else
returnfalse;
}
四、对象相关【属性】事件
override public void SelectEvent(/*System.Windows.Forms.Formpt*/)
{
//右键点击对象,选择【属性】的事件
}
五、对象销毁
override public void Dispose(ArrayListal)
{
}