www.pudn.com > LabWindowsCVI.rar > sample10.c
#include#include #include #include #include #include "sample10.h" #include "cviogl.h" #include "animate.h" #define PI 3.1415926 #define RAD(x) ((x)*PI/180.0) #define NUM_STEPS 57 //定义变量 static int panelHandle,oglControl; static double angle=0; char Path[NUM_STEPS * 30]; //自定义函数 static int SetOGLAttributes(void); int Plot3D (int panel); void GeneratePath(void); int main (int argc, char *argv[]) { if (InitCVIRTE (0, argv, 0) == 0) return -1; if ((panelHandle = LoadPanel (0, "sample10.uir", PANEL)) < 0) return -1; //创建OpenGL控件 oglControl = OGLConvertCtrl (panelHandle, PANEL_PICTURE); //设置OpenGL控件属性 SetOGLAttributes(); //在OpenGL控件上作三维图形 Plot3D(panelHandle); //创建动画控件 AnimateCtrl_ConvertFromPictRing (panelHandle, PANEL_PICTURERING); //设置动画控件两帧之间的时间间隔 AnimateCtrl_SetAttribute (panelHandle, PANEL_PICTURERING, ATTR_ANIMATE_FRAME_INTERVAL, 1); //产生动画控件的路径 GeneratePath(); //设置动画控件路径 AnimateCtrl_SetAttribute (panelHandle, PANEL_PICTURERING, ATTR_ANIMATE_PATH, Path); //设置动画控件有效属性为FALSE AnimateCtrl_SetAttribute (panelHandle, PANEL_PICTURERING, ATTR_ANIMATE_ENABLED, 0); //设置动画控件播放至路径末时停止播放 AnimateCtrl_SetAttribute (panelHandle, PANEL_PICTURERING, ATTR_ANIMATE_STOP_AT_PATH_END, 1); DisplayPanel (panelHandle); RunUserInterface (); //删除OpenGL控件 OGLDiscardCtrl (panelHandle, oglControl); return 0; } int CVICALLBACK PanelCallback (int panel, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_CLOSE: QuitUserInterface (0); break; } return 0; } int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0; } int CVICALLBACK AddFile (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int status,filenumber,k,count; char **multifileresult,*multifilename; switch (event) { case EVENT_COMMIT: //打开多文件选择框 status = MultiFileSelectPopup ("c:\\windows\\media", "*.wav", "", "Add File", 0, 1, 1, &filenumber, &multifileresult); if(status<=0) break; //获取FILELIST控件包含的项目数 GetNumListItems (panel, PANEL_FILELIST, &count); //添加文件名 for(k=count;k 10) { frame=frame-10; } path += sprintf(path, "(T=%d, L=%d, F=%d) ", y, x, frame); y += 8; } }