短くできる点、いらない点などを教えてください。
それと、コードの半分くらいのところにある、時計の針の/180.0のところを/180とすると、針が動かなくなります。
なぜでしょうか。
#include "DxLib.h"
#include <math.h>
DATEDATA Date;
int Cr = GetColor(255,255,255);
int Cr2 = GetColor(0,0,0);
double PI = 3.141592653589793;
//3大処理
int ProcessLoop(){
if(ProcessMessage()!=0)return -1;
if(ClearDrawScreen()!=0)return -1;
return 0;
}
void Watch(){
DrawCircle( 320 , 240 , 200 , Cr,FALSE ) ; //
DrawCircle( 320 , 240 , 205 , Cr,FALSE ) ;//時計のまわり
int num=0;
for (double i = 0; i<=11; i++){
DrawFormatString(cos((-90+i*30)*PI/180)*170-3 + 320 ,sin((-90+i*30)*PI/180)*170-3 + 240 , Cr , "%d", num++ );//文字
}
DrawLine(320,240 ,320+cos((Date.Sec-15)*6/180.0*PI)*180,240+sin((Date.Sec-15)*6/180.0*PI)*180,Cr,1);//秒針 180.0を180にすると動かなくなる
DrawLine(320,240 ,320+cos((Date.Min-15)*6/180.0*PI+((Date.Sec)*6/180.0*PI)/60)*160,240+sin((Date.Min-15)*6/180.0*PI+((Date.Sec)*6/180.0*PI)/60)*160,Cr,3);//分針
DrawLine(320,240 ,320+cos((Date.Hour-3)*30/180.0*PI+((Date.Min)*6/180.0*PI)/12)*120,240+sin((Date.Hour-3)*30/180.0*PI+((Date.Min)*6/180.0*PI)/12)*120,Cr,5);//時針
DrawCircle( 320 , 240 , 3 , Cr, TRUE ) ; //
DrawCircle( 320 , 240 , 2 , Cr2, TRUE ) ;//中心
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 )return -1;
while(ProcessLoop()==0){
GetDateTime( &Date ) ;// 現在時刻を得る
DrawFormatString( 5, 7, Cr, "%d年%d月%d日%d時%d分%d秒", Date.Year,Date.Mon,Date.Day,Date.Hour,Date.Min,Date.Sec) ;//時刻
Watch();
}
DxLib_End();
return 0;
}
サークル名:RemicalSoft
サイト名 :サンプルプログラミングの館
こちらの太鼓の鉄人のサンプルを参考にさせていただきました。ありがとうございました