📄 cm_main1.c
字号:
arry_y[3]=(((200-Event.button.y)/2)%100)/10+'0'; arry_y[4]=((200-Event.button.y)/2)%10+'0'; arry_y[5]='C'; arry_y[6]='M'; arry_y[7]='\0'; GrClearWindow(WIN_Massage,GR_FALSE); GrFillRect(WIN_Massage,Gid_Button,0,0,60,20);//画填充矩形为按钮 GrText(WIN_Massage,Gid_Message,4,18,arry_x,-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,arry_y,-1,GR_TFASCII); if(X_sit < 0) { X_sit = Event.button.x; Y_sit = Event.button.y; QU_giReInitQueue();//清空存储区 QU_giSetDataIntoQueue(X_sit+(200-Y_sit)*1000);//点存到缓冲区 } else { GrLine(WIN_Screen,Gid_Guiji,X_sit,Y_sit,Event.button.x,Event.button.y); numberOfPoint = (sqrt((double)((Event.button.x-X_sit)*(Event.button.x-X_sit)+((Event.button.y)-Y_sit)*((Event.button.y)-Y_sit))))/2; X_cha = Event.button.x-X_sit; Y_cha = -((Event.button.y)-Y_sit); if((X_cha == 0)&&(Y_cha > 0)) { The_jiaodu = 90*0.0174533; } if((X_cha == 0)&&(Y_cha < 0)) { The_jiaodu = 270*0.0174533; } if((X_cha > 0)&&(Y_cha == 0)) { The_jiaodu = 0*0.0174533; } if((X_cha < 0)&&(Y_cha == 0)) { The_jiaodu = 180*0.0174533; } if((X_cha > 0)&&(Y_cha > 0)) { The_jiaodu = atan(Y_cha/X_cha); } if((X_cha < 0)&&(Y_cha > 0)) { The_jiaodu = 180*0.0174533+atan(Y_cha/X_cha); } if((X_cha < 0)&&(Y_cha < 0)) { The_jiaodu = 180*0.0174533+atan(Y_cha/X_cha); } if((X_cha > 0)&&(Y_cha < 0)) { The_jiaodu = 360*0.0174533+atan(Y_cha/X_cha); } Cos = cos(The_jiaodu); Sin = sin(The_jiaodu); for(i=0;i<numberOfPoint;i++) { if(-1 == QU_giSetDataIntoQueue((X_sit+(int)(2*i*Cos))+ 1000*((200-Y_sit)+(int)(2*i*Sin))))//存坐标点 { break; } } X_sit = Event.button.x; Y_sit = Event.button.y; if(-1 == QU_giSetDataIntoQueue(Event.button.x+(200-Event.button.y)*1000))//点已经存满缓冲区 { QU_giGetDataFromQueue(); QU_giSetDataIntoQueue(Event.button.x+(200-Event.button.y)*1000); Mark_DrawButStatus = NONE; X_sit = -1; Y_sit = -1; } } } if(Mark_DrawButStatus == ROUNTD) { arry_x[0]='X'; arry_x[1]=':'; arry_x[2]=((Event.button.x)/2)/100+'0'; arry_x[3]=(((Event.button.x)/2)%100)/10+'0'; arry_x[4]=((Event.button.x)/2)%10+'0'; arry_x[5]='C'; arry_x[6]='M'; arry_x[7]='\0'; arry_y[0]='Y'; arry_y[1]=':'; arry_y[2]=((200-Event.button.y)/2)/100+'0'; arry_y[3]=(((200-Event.button.y)/2)%100)/10+'0'; arry_y[4]=((200-Event.button.y)/2)%10+'0'; arry_y[5]='C'; arry_y[6]='M'; arry_y[7]='\0'; GrClearWindow(WIN_Massage,GR_FALSE); GrFillRect(WIN_Massage,Gid_Button,0,0,60,20);//画填充矩形为按钮 GrText(WIN_Massage,Gid_Message,4,18,arry_x,-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,arry_y,-1,GR_TFASCII); if(X_sit < 0) { X_sit = Event.button.x; Y_sit = Event.button.y; QU_giReInitQueue();//清空存储区 GrClearWindow(WIN_Screen,GR_FALSE);//清屏 if(-1 == QU_giSetDataIntoQueue(X_sit+(200-Y_sit)*1000))//点已经存满缓冲区 { Mark_DrawButStatus = NONE; } } else { GrEllipse(WIN_Screen,Gid_Guiji,X_sit,Y_sit,sqrt((double)((Event.button.x-X_sit)*(Event.button.x-X_sit)+(Event.button.y-Y_sit)*(Event.button.y-Y_sit))),sqrt((double)((Event.button.x-X_sit)*(Event.button.x-X_sit)+(Event.button.y-Y_sit)*(Event.button.y-Y_sit)))); R_long = sqrt((double)((Event.button.x-X_sit)*(Event.button.x-X_sit)+(Event.button.y-Y_sit)*(Event.button.y-Y_sit))); i = 0; while(i<360) { if(-1 == QU_giSetDataIntoQueue((X_sit+(int)(R_long*cos(i*0.0174533)))+ 1000*((200-Y_sit)+(int)(R_long*sin(i*0.0174533)))))//存坐标点 { Mark_DrawButStatus = NONE; break; } i++; } X_sit = -1; Y_sit = -1; } } } } if(Event.type == GR_EVENT_TYPE_BUTTON_UP)//控制面板各个按钮的抬起事件 { if(Event.button.wid==WIN_But_SetPass) { if(Mark_SetButStatus == SET) { GrUnmapWindow(WIN_But_SetPass); GrUnmapWindow(WIN_But_Start); GrUnmapWindow(WIN_But_Stop); GrUnmapWindow(WIN_But_Pass); GrClearWindow(WIN_But_SetPass,GR_FALSE);//变'设置'为'保存' GrMapWindow(WIN_But_SetPass); GrFillRect(WIN_But_SetPass,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_SetPass,Gid_ButtonName,9,18,"保存",-1,GR_TFASCII); //显示其他按钮 GrClearWindow(WIN_But_Line,GR_FALSE);//画线 GrMapWindow(WIN_But_Line); GrFillRect(WIN_But_Line,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Line,Gid_ButtonName,9,18,"画线",-1,GR_TFASCII); GrClearWindow(WIN_But_Round,GR_FALSE);//画圆 GrMapWindow(WIN_But_Round); GrFillRect(WIN_But_Round,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Round,Gid_ButtonName,9,18,"画圆",-1,GR_TFASCII); GrClearWindow(WIN_Massage,GR_FALSE); GrText(WIN_Massage,Gid_Message,4,18,"X:",-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,"Y:",-1,GR_TFASCII); GrClearWindow(WIN_Status,GR_FALSE); GrUnmapWindow(WIN_Status); GrClearWindow(WIN_Screen,GR_FALSE); QU_giReInitQueue();//清空存储区 Mark_SetButStatus = SAVE; Mark_DrawButStaPause = STOP; } else if(Mark_SetButStatus == SAVE) { GrUnmapWindow(WIN_But_SetPass); GrUnmapWindow(WIN_But_Line); GrUnmapWindow(WIN_But_Round); GrClearWindow(WIN_But_SetPass,GR_FALSE);//变'保存'为'设置' GrMapWindow(WIN_But_SetPass); GrFillRect(WIN_But_SetPass,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_SetPass,Gid_ButtonName,9,18,"设定",-1,GR_TFASCII); //显示其他按钮 if(Mark_DrawButStaPause == STOP) { GrMapWindow(WIN_But_Start); GrClearWindow(WIN_But_Start,GR_FALSE);//开始 GrFillRect(WIN_But_Start,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Start,Gid_ButtonName,9,18,"开始",-1,GR_TFASCII); GrMapWindow(WIN_But_Stop); GrClearWindow(WIN_But_Stop,GR_FALSE); GrFillRect(WIN_But_Stop,Gid_ButtonDown,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Stop,Gid_ButtonDownName,9,18,"停止",-1,GR_TFASCII); } if(Mark_DrawButStaPause == START)//停止 { GrMapWindow(WIN_But_Start); GrClearWindow(WIN_But_Start,GR_FALSE);//开始 GrFillRect(WIN_But_Start,Gid_ButtonDown,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Start,Gid_ButtonDownName,9,18,"开始",-1,GR_TFASCII); GrMapWindow(WIN_But_Stop); GrClearWindow(WIN_But_Stop,GR_FALSE); GrFillRect(WIN_But_Stop,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Stop,Gid_ButtonName,9,18,"停止",-1,GR_TFASCII); } GrClearWindow(WIN_But_Pass,GR_FALSE);//循迹 GrMapWindow(WIN_But_Pass); GrFillRect(WIN_But_Pass,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Pass,Gid_ButtonName,9,18,"循迹",-1,GR_TFASCII); GrClearWindow(WIN_Massage,GR_FALSE); GrFillRect(WIN_Massage,Gid_Button,0,0,40,20);//画填充矩形为按钮 GrText(WIN_Massage,Gid_Message,4,18,"X:",-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,"Y:",-1,GR_TFASCII); GrClearWindow(WIN_Status,GR_FALSE); GrMapWindow(WIN_Status); GrFillRect(WIN_Status,Gid_Yellow_Yellow,0,0,50,25);//画填充矩形为按钮 GrText(WIN_Status,Gid_Black_Yellow,10,18,"停止",-1,GR_TFASCII); arry_x[0]='X'; arry_x[1]=':'; arry_x[2]=((Current_x)/2)/100+'0'; arry_x[3]=(((Current_x)/2)%100)/10+'0'; arry_x[4]=((Current_x)/2)%10+'0'; arry_x[5]='C'; arry_x[6]='M'; arry_x[7]='\0'; arry_y[0]='Y'; arry_y[1]=':'; arry_y[2]=((Current_y)/2)/100+'0'; arry_y[3]=(((Current_y)/2)%100)/10+'0'; arry_y[4]=((Current_y)/2)%10+'0'; arry_y[5]='C'; arry_y[6]='M'; arry_y[7]='\0'; GrClearWindow(WIN_Massage,GR_FALSE); GrFillRect(WIN_Massage,Gid_Button,0,0,60,20);//画填充矩形为按钮 GrText(WIN_Massage,Gid_Message,4,18,arry_x,-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,arry_y,-1,GR_TFASCII); GrPoint(WIN_Screen,Gid_Red_Red,Real_x(Current_x),Real_y(Current_y)); Mark_SetButStatus = SET; Mark_DrawButStatus = NONE; X_sit = -1; Y_sit = -1; } Mark_OBStatus = STOP; } if(Event.button.wid==WIN_But_Pass) { GrClearWindow(WIN_But_Pass,GR_FALSE);//循迹 GrFillRect(WIN_But_Pass,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Pass,Gid_ButtonName,9,18,"循迹",-1,GR_TFASCII); Mark_OBStatus = STOP; } if(Event.button.wid==WIN_But_Start) { GrClearWindow(WIN_But_Stop,GR_FALSE);//停止 GrFillRect(WIN_But_Stop,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Stop,Gid_ButtonName,9,18,"停止",-1,GR_TFASCII); Mark_DrawButStaPause = START; Mark_OBStatus = START; } if(Event.button.wid==WIN_But_Stop) { GrClearWindow(WIN_But_Start,GR_FALSE);//开始 GrFillRect(WIN_But_Start,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Start,Gid_ButtonName,9,18,"开始",-1,GR_TFASCII); GrClearWindow(WIN_Status,GR_FALSE); GrFillRect(WIN_Status,Gid_Yellow_Yellow,0,0,50,25);//画填充矩形为按钮 GrText(WIN_Status,Gid_Black_Yellow,10,18,"停止",-1,GR_TFASCII); Mark_DrawButStaPause = STOP; Mark_OBStatus = STOP; } if(Event.button.wid==WIN_But_Line) { GrClearWindow(WIN_But_Line,GR_FALSE);//画线 GrFillRect(WIN_But_Line,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Line,Gid_ButtonName,9,18,"画线",-1,GR_TFASCII); GrClearWindow(WIN_Screen,GR_FALSE); GrClearWindow(WIN_Massage,GR_FALSE); GrFillRect(WIN_Massage,Gid_Button,0,0,40,20);//画填充矩形为按钮 GrText(WIN_Massage,Gid_Message,4,18,"X:",-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,"Y:",-1,GR_TFASCII); Mark_DrawButStatus = LINE; X_sit = -1; Y_sit = -1; QU_giReInitQueue();//清空存储区 } if(Event.button.wid==WIN_But_Round) { GrClearWindow(WIN_But_Round,GR_FALSE);//画圆 GrFillRect(WIN_But_Round,Gid_Button,0,0,Button_Width,Button_High);//画填充矩形为按钮 GrText(WIN_But_Round,Gid_ButtonName,9,18,"画圆",-1,GR_TFASCII); GrClearWindow(WIN_Massage,GR_FALSE); GrFillRect(WIN_Massage,Gid_Button,0,0,40,20);//画填充矩形为按钮 GrText(WIN_Massage,Gid_Message,4,18,"X:",-1,GR_TFASCII); GrText(WIN_Massage,Gid_Message,4,38,"Y:",-1,GR_TFASCII); GrClearWindow(WIN_Screen,GR_FALSE); Mark_DrawButStatus = ROUNTD; X_sit = -1; Y_sit = -1; QU_giReInitQueue();//清空存储区 } } if(Mark_OBStatus == START) { GrClearWindow(WIN_Status,GR_FALSE); GrFillRect(WIN_Status,Gid_Green_Green,0,0,50,25);//画填充矩形为按钮 GrText(WIN_Status,Gid_Black_Green,5,18,"行进中",-1,GR_TFASCII); if((X_Y_pos = QU_giGetDataFromQueue()) == -1) { Mark_OBStatus = ARRIVED; } else if(X_Y_pos >= 0) { CM_gvGoTo(X_Y_pos); Current_x = X_Y_pos%1000; Current_y = X_Y_pos/1000; if(Mark_SetButStatus == SET) { arry_x[0]='X'; arry_x[1]=':'; arry_x[2]=((Current_x)/2)/100+'0'; arry_x[3]=(((Current_x)/2)%100)/10+'0'; arry_x[4]=((Current_x)/2)%10+'0'; arry_x[5]='C'; arry_x[6]='M'; arry_x[7]='\0'; arry_y[0]='Y'; arry_y[1]=':'; arry_y[2]=((Current_y)/2)/100+'0'; arry_y[3]=(((Current_y)/2)%100)/10+'0'; arry_y[4]=((Current_y)/2)%10+'0'; arry_y[5]='C'; arry_y[6]='M';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -