集集農場民宿-休閒小木屋住宿

網站公告 :


Delphi K.Top討論區 » VCL 元件使用或設計討論區(C++Builder) » 在Memo上執行正反轉加減速的問題
發表新文章
  訂閱主題 加入收藏
主題:在Memo上執行正反轉加減速的問題
瀏覽次數:17
主題上鎖 加入黃金文章
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)    {    int count,count1;    float X1,Y1,Z1;    float X2,Y2,Z2;    float X3,Y3,Z3;    count2=Memo3->Lines->Count;    Memo3->Clear();       for(count=0,count1=0;count<count2;count1++,count++)    {    X1=*(X_point+a++); X2=*(X_point+d++); X3=10*(X2-X1);    Y1=*(Y_point+b++); Y2=*(Y_point+e++); Y3=10*(Y2-Y1);    Z1=*(Z_point+c++); Z2=*(Z_point+f++); Z3=10*(Z2-Z1);    //***********************反轉**************************//    if ((X3<(-50))||(Y3<(-50))||(Z3<(-50)))    {        AnsiString str="Usb:"+IntToStr(0)+"\t"                       +"X:"+IntToStr(int (X3/2))+"\t"                       +"Y:"+IntToStr(int (Y3/2))+"\t"                       +"Z:"+IntToStr(int (Z3/2))+"\t";         Application->ProcessMessages();         Memo3->Lines->Insert(count1,str);         count1=count1+1;         str="Usb:"+IntToStr(0)+"\t"                       +"X:"+IntToStr(int (X3/2))+"\t"                       +"Y:"+IntToStr(int (Y3/2))+"\t"                       +"Z:"+IntToStr(int (Z3/2))+"\t";         Application->ProcessMessages();         Memo3->Lines->Insert(count1,str);    }    else   {    AnsiString str="Usb:"+IntToStr(0)+"\t"                       +"X:"+IntToStr(int (X3))+"\t"                       +"Y:"+IntToStr(int (Y3))+"\t"                       +"Z:"+IntToStr(int (Z3))+"\t";         Application->ProcessMessages();         Memo3->Lines->Insert(count1,str);    }    //***********************正轉**************************//    if((X3>50)||(Y3>50)||(Z3>50))    {    AnsiString str="Usb:"+IntToStr(0)+"\t"                       +"X:"+IntToStr(int (X3/2))+"\t"                       +"Y:"+IntToStr(int (Y3/2))+"\t"                       +"Z:"+IntToStr(int (Z3/2))+"\t";         Application->ProcessMessages();         Memo3->Lines->Insert(count1,str);         count1=count1+1;         str="Usb:"+IntToStr(0)+"\t"                       +"X:"+IntToStr(int (X3/2))+"\t"                       +"Y:"+IntToStr(int (Y3/2))+"\t"                       +"Z:"+IntToStr(int (Z3/2))+"\t";         Application->ProcessMessages();         Memo3->Lines->Insert(count1,str);    }      

編輯記錄
dllee 重新編輯於 2007-06-24 20:07:08, 註解 改文章分類為 問題, 請在得到滿意答覆後選一得分者‧


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