全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1689
推到 Plurk!
推到 Facebook!

如何使用C++ Builder 5 做一個會動的類比時鐘與數位時鐘

尚未結案
ghosbrother
一般會員


發表:3
回覆:1
積分:0
註冊:2006-12-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-18 14:01:48 IP:218.175.xxx.xxx 訂閱
小弟在學校 接觸C++ Builder 5 已經6個禮拜了~但如何才能寫出會動的時鐘(我的都不會動)
請各位前輩指教~附上我自己的程式
附加檔案:4808394beb49c_C++.rar
hipig
高階會員


發表:31
回覆:75
積分:111
註冊:2007-01-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-01 23:39:27 IP:220.132.xxx.xxx 未訂閱
首先這是個數學問題
你必須先知道一個很重要的數值
叫"角度"
把一個圓360度畫分成60格
這樣才知道現在這條線要以圓心為準幾度畫出去
之後研究如何把分時等指針也呈現上去
這邊酌附上畫有角度線條的方式
至於數學問題就留待於您仔細思考
[code cpp]
double Angle; //角度
int startX, startY, LineLong;//起始
及線長
Angle = Angle * M_PI/180.0;
Canvas->MoveTo(
startX, startY);
Canvas->LineTo(
startX (int)(LineLong * sin(Angle)),
startY - (int)(LineLong * cos(Angle)));
[/code]
以你的程式實做秒數部份
[code cpp]
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
Label1->Caption="現在:" Time();
Image1->Picture = NULL;
Image1->Canvas->Ellipse(0,0,199,199);
double Angle = 6 * StrToFloat(Now().FormatString("ss")); //角度
int startX = 100, startY = 100, LineLong = 80;//起始及線長
Angle = Angle * M_PI/180.0;
Image1->Canvas->MoveTo(startX, startY);
Image1->Canvas->LineTo(
startX (int)(LineLong * sin(Angle)),
startY - (int)(LineLong * cos(Angle)));
}

[/code]


===================引 用 ghosbrother 文 章===================
小弟在學校 接觸C Builder 5 已經6個禮拜了~但如何才能寫出會動的時鐘(我的都不會動)
請各位前輩指教~附上我自己的程式
系統時間:2024-04-26 21:32:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!