視動自動化科技股份有限公司

網站公告 :


Delphi K.Top討論區 » VCL 元件使用或設計討論區(C++Builder) » 在Memo上執行正反轉加減速的問題
發表新文章
  訂閱主題 加入收藏
主題:在Memo上執行正反轉加減速的問題
瀏覽次數:15
主題上鎖 加入黃金文章
mickey10112001
一般會員




發表:8
回覆:3
積分:2
註冊:2006-08-04

發送簡訊給我
#1 發表時間:2007-06-24 12:24:02 IP:218.170.24.227 訂閱

各位大大好:
以下是我的程式,我要將我的數據值(XYZ的座標值),把(下一部減上一部)x10倍以X3(有正有負)呈現出來並印在Memo上,但我遇見了一個問題:當X3由正變負或負變正(正轉變反轉,反轉變正轉)時,我必須使其做加速或減速的動作,但我目前只能知道X3值是大於0或小於0而做動作,卻無法在X3有正負號變換時做動作,請各位大大提供我方向,因為我要在正轉變負轉時做減速動作,而在負轉變正轉時做加速動作!!
謝謝各位大大^^

我執行Button前的數據值(XYZ的座標值):
X:0 Y:0 Z:0
X:10 Y:0 Z:0
X:10 Y:0 Z:10
X:10 Y:0 Z:0
X:0 Y:0 Z:0
X:0 Y:10 Z:0
X:0 Y:10 Z:10
X:0 Y:10 Z:0
X:0 Y:0 Z:0
執行Button後的數據值(XYZ的座標值):
X:50 Y:0 Z:0
X:50 Y:0 Z:0
X:0 Y:0 Z:50
X:0 Y:0 Z:50
X:0 Y:0 Z:-50
X:0 Y:0 Z:-50
X:-50 Y:0 Z:0
X:-50 Y:0 Z:0
X:0 Y:50 Z:0
X:0 Y:50 Z:0
X:0 Y:0 Z:50
X:0 Y:0 Z:50
X:0 Y:0 Z:-50
X:0 Y:0 Z:-50
X:0 Y:-50 Z:0
X:0 Y:-50 Z:0


  1. void __fastcall TForm1::Button8Click(TObject *Sender)  
  2. {  
  3. int count,count1;  
  4. float X1,Y1,Z1;  
  5. float X2,Y2,Z2;  
  6. float X3,Y3,Z3;  
  7. count2=Memo3->Lines->Count;  
  8. Memo3->Clear();  
  9.   
  10. for(count=0,count1=0;count<count2;count1++,count++)  
  11. {  
  12. X1=*(X_point+a++); X2=*(X_point+d++); X3=10*(X2-X1);  
  13. Y1=*(Y_point+b++); Y2=*(Y_point+e++); Y3=10*(Y2-Y1);  
  14. Z1=*(Z_point+c++); Z2=*(Z_point+f++); Z3=10*(Z2-Z1);  
  15. //***********************反轉**************************//  
  16. if ((X3<(-50))||(Y3<(-50))||(Z3<(-50)))  
  17. {  
  18.     AnsiString str="Usb:"+IntToStr(0)+"\t"  
  19.                     +"X:"+IntToStr(int (X3/2))+"\t"  
  20.                     +"Y:"+IntToStr(int (Y3/2))+"\t"  
  21.                     +"Z:"+IntToStr(int (Z3/2))+"\t";  
  22.      Application->ProcessMessages();  
  23.      Memo3->Lines->Insert(count1,str);  
  24.      count1=count1+1;  
  25.      str="Usb:"+IntToStr(0)+"\t"  
  26.                     +"X:"+IntToStr(int (X3/2))+"\t"  
  27.                     +"Y:"+IntToStr(int (Y3/2))+"\t"  
  28.                     +"Z:"+IntToStr(int (Z3/2))+"\t";  
  29.      Application->ProcessMessages();  
  30.      Memo3->Lines->Insert(count1,str);  
  31. }  
  32. else  
  33. {  
  34. AnsiString str="Usb:"+IntToStr(0)+"\t"  
  35.                     +"X:"+IntToStr(int (X3))+"\t"  
  36.                     +"Y:"+IntToStr(int (Y3))+"\t"  
  37.                     +"Z:"+IntToStr(int (Z3))+"\t";  
  38.      Application->ProcessMessages();  
  39.      Memo3->Lines->Insert(count1,str);  
  40. }  
  41. //***********************正轉**************************//  
  42. if((X3>50)||(Y3>50)||(Z3>50))  
  43. {  
  44. AnsiString str="Usb:"+IntToStr(0)+"\t"  
  45.                     +"X:"+IntToStr(int (X3/2))+"\t"  
  46.                     +"Y:"+IntToStr(int (Y3/2))+"\t"  
  47.                     +"Z:"+IntToStr(int (Z3/2))+"\t";  
  48.      Application->ProcessMessages();  
  49.      Memo3->Lines->Insert(count1,str);  
  50.      count1=count1+1;  
  51.      str="Usb:"+IntToStr(0)+"\t"  
  52.                     +"X:"+IntToStr(int (X3/2))+"\t"  
  53.                     +"Y:"+IntToStr(int (Y3/2))+"\t"  
  54.                     +"Z:"+IntToStr(int (Z3/2))+"\t";  
  55.      Application->ProcessMessages();  
  56.      Memo3->Lines->Insert(count1,str);  
  57. }  


系統時間:2007-06-24 20:06:49,  線上使用者 947 / Max 1,127,主題數:81,228,回覆數:175,968。  聯絡我們 | Delphi.ktop討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!