📄 drawline.mc
字号:
/*================================================================================
Step by step 之 MDL 快速入门实例五
================================================================================*/
#include <tcb.h>
#include <mdl.h>
#include <stdio.h>
#include <userfnc.h>
#include <mselems.h>
#include <stdio.h>
Dpoint3d g_Point[101];
int g_pointIndex;
Private void InputSide();
Public void main(int argc,char *argv[])
{
InputSide();
}
void Linestring_onPoint(Dpoint3d* pPoint,int view);
void Linestring_reset(void);
void Linestring_2onPoint(Dpoint3d* pPoint,int view);
void Linestring_2show(Dpoint3d *pPoint, int view, int drawMode, int add);
void Linestring_2reset(void);
Private void InputSide()
{
mdlState_startPrimitive(Linestring_onPoint,InputSide,0,0);
mdlState_setFunction(STATE_COMPLEX_DYNAMICS, NULL);
}
void Linestring_onPoint(Dpoint3d* pPoint,int view)
{
mdlState_setFunction(STATE_DATAPOINT, Linestring_2onPoint);
mdlState_setFunction(STATE_RESET, Linestring_2reset);
mdlState_setFunction(STATE_COMPLEX_DYNAMICS, Linestring_2show);
g_Point[0] = *pPoint;
g_pointIndex=1;
}
void Linestring_2onPoint(Dpoint3d* pPoint,int view)
{
g_Point[g_pointIndex]=*pPoint;
if (g_pointIndex<101)
g_pointIndex++;
else
Linestring_2reset();
}
void Linestring_2show(Dpoint3d *pPoint, int view, int drawMode, int add)
{
MSElement el;
g_Point[g_pointIndex]=*pPoint;
mdlLineString_create(&el, NULL, g_Point, g_pointIndex+1);
mdlElement_display(&el, drawMode);
}
void Linestring_2reset(void)
{
MSElement el;
mdlLineString_create(&el, NULL, g_Point, g_pointIndex);
mdlElement_add(&el);
mdlElement_display(&el, NORMALDRAW);
mdlState_startPrimitive(Linestring_onPoint,Linestring_reset,0,0);
mdlState_setFunction(STATE_COMPLEX_DYNAMICS, NULL);
g_pointIndex=0;
}
void Linestring_reset(void)
{
mdlSystem_exit(0,1);
mdlState_startDefaultCommand();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -