求一段画钟表指针的代码,C#语言

求一段C#代码,画出钟表时针的轨迹也就是说隔一个小时走一个格那种,隔多长时间什么的好弄了,就是画点的代码不大熟... 求一段C#代码,画出钟表时针的轨迹也就是说隔一个小时走一个格那种,隔多长时间什么的好弄了,就是画点的代码不大熟 展开
 我来答
卡sensei
2009-01-12 · TA获得超过437个赞
知道小有建树答主
回答量:454
采纳率:0%
帮助的人:157万
展开全部
g = e.Graphics;
//绘图模式默认为粗糙模式,将会出现锯齿!
g.SmoothingMode = SmoothingMode.AntiAlias;
g.SmoothingMode = SmoothingMode.HighQuality;
g.TranslateTransform(w / 2, h / 2);//重新设置坐标原点
//获得系统时间值
int second = DateTime.Now.Second;
int minute = DateTime.Now.Minute;
int hour = DateTime.Now.Hour;
/*------------------------------------------------------------------------------------
每秒偏移度,秒针偏移=当前秒*6
每分偏移读,分针偏移= 当前分*6+当前秒*(/60)
每小时偏移读,时针偏移= 当前时*30+当前分*(/60)+当前秒*(/60/60)
--------------------------------------------------------------------------------------*/

//绘秒针
pen = new Pen(Color.FromArgb(121, 151, 188), 1);
pen.EndCap = LineCap.RoundAnchor;
g.RotateTransform(6 * second);
float y = (float)((-1) * (h / 2.75));
g.DrawLine(pen, new PointF(0, 0), new PointF((float)0, y));
////绘分针
pen = new Pen(Color.FromArgb(147, 162, 180), 4);
pen.EndCap = LineCap.Round;
g.RotateTransform(-6 * second); //恢复系统偏移量,再计算下次偏移
g.RotateTransform((float)(second * 0.1 + minute * 6));
y = (float)((-1) * ((h - 20) / 2.75));
g.DrawLine(pen, new PointF(0, 0), new PointF((float)0, y));
////绘时针
pen = new Pen(Color.FromArgb(90, 94, 96), 6);
pen.EndCap = LineCap.Round;
g.RotateTransform((float)(-second * 0.1 - minute * 6));//恢复系统偏移量,再计算下次偏移
g.RotateTransform((float)(second * 0.01 + minute * 0.1 + hour * 30));
y = (float)((-1) * ((h - 35) / 2.75));
g.DrawLine(pen, new PointF(0, 0), new PointF((float)0, y));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yl_ls
2009-01-12 · TA获得超过459个赞
知道小有建树答主
回答量:409
采纳率:0%
帮助的人:431万
展开全部
private void Form1_Paint(object sender, PaintEventArgs e)
{
int bj = 100; // 半径
Point p = new Point(120, 120); // 圆心位置
// 绘制 12 个时间点
for (int i = 0; i < 360; i+=30)
{
int y = (int)(Math.Sin(i * Math.PI / 180) * bj) + p.Y;
int x = (int)(-Math.Cos(i * Math.PI / 180) * bj) + p.X;
e.Graphics.DrawLine(SystemPens.ControlText, new Point(x , y), new Point(x, y+1));
}
}

这是算出 12 小时各点的方法
用相同的方法可以把时针的角度变成针尖的坐标就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式