線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:820
推到 Plurk!
推到 Facebook!

請問圖形問題:二點之間如何連成一條線

尚未結案
spaceworld1108
一般會員


發表:30
回覆:19
積分:9
註冊:2004-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-30 18:15:07 IP:140.118.xxx.xxx 未訂閱
請問各位大大: 我目前有兩個點(x[0]=1.55 ,y[0]=2.66 ) (x[1]=3.5 ,y[1]=4.6 ) 有什麼方法可以將它連接成一條線 因為我看過書 Canvas->LineTo 的方法只能使用int無法用float 還是說有其他方法 麻煩各位大大 發表人 - spaceworld1108 於 2004/08/30 20:36:05
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-30 21:41:40 IP:219.80.xxx.xxx 未訂閱
Hello spaceworld1108,    我試過用float,但程式不會有問題:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  double x,y;
  //float x,y;
  x=20.5;
  y=200.3;
  Canvas->MoveTo(x,y);
  Canvas->TextOutA(x,y,FloatToStr(x) "  ,  " FloatToStr(y));
  x =150.15;
  y =202.6;
  Canvas->LineTo(x,y);
  Canvas->TextOutA(x,y,FloatToStr(x) "  ,  " FloatToStr(y));
  Canvas->MoveTo(x,y);
  x =88.5;
  y-=302.6;
  Canvas->LineTo(x,y);
  Canvas->TextOutA(x,y,FloatToStr(x) "  ,  " FloatToStr(y));
}
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-30 21:43:34 IP:211.76.xxx.xxx 未訂閱
spaceworld1108 您好:    
引言: 請問各位大大: 我目前有兩個點(x[0]=1.55 ,y[0]=2.66 ) (x[1]=3.5 ,y[1]=4.6 ) 有什麼方法可以將它連接成一條線 因為我看過書 Canvas->LineTo 的方法只能使用int無法用float 還是說有其他方法 麻煩各位大大
您的問題其實並沒有您憂慮的那般複雜。 Form1->Canvas->MoveTo(x[0], y[0]); Form1->Canvas->LineTo(x[1], y[1]); 這樣就行了,BCB會自動幫您作型態轉換。 不過在程式中明確轉換型態是比較好的習慣, Form1->Canvas->MoveTo((int)x[0], (int)y[0]); Form1->Canvas->LineTo((int)x[1], (int)y[1]); 如果真要說有什麼問題,大概就是float轉換成整數int時,到底規則該怎麼定? 是要四捨五入或是無條件捨去還是有小數時無條件進1,就要依您的使用需求來決定了。 所以有可能您需要寫一個函式去轉換出您要的整數:
int myInt(float value)
{ int result;
  // .....
  // 您的整數取得規則,設定result的值
  // .....
  return result;
}    Form1->Canvas->MoveTo(myInt( x[0] ), myInt( y[0]));
Form1->Canvas->LineTo(myInt( x[1] ), myInt( y[1]));
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
spaceworld1108
一般會員


發表:30
回覆:19
積分:9
註冊:2004-05-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-31 14:42:18 IP:140.118.xxx.xxx 未訂閱
謝謝你們 我想再請問令一個相關問題 若是我今天的兩點是(x[0]=1.2 , y[0]=3.5 ,z[0]=6.9) (x[1]=1.2 , y[1]=3.5 ,z[1]=6.9) 有x,y,z座標點那是否有別的方法來連接ㄋ
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-31 16:26:23 IP:163.28.xxx.xxx 未訂閱
Hello spaceworld1108, 可試著使用TChart看看. 裡面有AddX(),AddY(),ADDXY()這些method,看這些是否符合你的需求 參考看看. 發表人 - nlj859 於 2004/08/31 16:36:14
spaceworld1108
一般會員


發表:30
回覆:19
積分:9
註冊:2004-05-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-31 17:17:42 IP:140.118.xxx.xxx 未訂閱
真的好謝謝你們兩位 很想都給你們分數 不過只能一位 真的不好意思
系統時間:2024-05-13 22:38:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!