本人数学太菜。请大侠们帮忙画一个类似汽车码表的温湿度计。GDI+

walkghost 2009-06-24 09:45:56
/********************************************************************************
* 说明:写一个画类似汽车码表温湿度计的函数,无返回值。
* 参数:int temp,int h
* 原型:
* protected void DrawTH(int temp,int h)
* 要求:
* 在一个400*400的黑色画布(假定为PanelTH,Graphics g = panel1.CreateGraphics())中间画一个半径为100的圆,圆的上面一部分被等分(需画出刻度)。传入值,分别画出指针应当指向的位置。
********************************************************************************/

参考的效果图:




谢谢!

...全文
52 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lowsong 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 walkghost 的回复:]
引用 14 楼 lowsong 的回复:
楼主找一张400*400的汽车码表图片...
用GDI画上去..然后再自己再两条直线(码表针)..就可以了..没有必要完全用GDI画


找的码表素材不是正圆。汗一个。。。。
[/Quote]

是不是正圆很重要?那你用PS弄一个...
画图片有好处的..以后要更换码表,只要更换资源文件就可以了..
实现换皮肤功能...如果对码表的美观有要求的话..
yanhuanghero 2009-06-25
  • 打赏
  • 举报
回复
ding
walkghost 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lowsong 的回复:]
楼主找一张400*400的汽车码表图片...
用GDI画上去..然后再自己再两条直线(码表针)..就可以了..没有必要完全用GDI画
[/Quote]
找的码表素材不是正圆。汗一个。。。。
walkghost 2009-06-25
  • 打赏
  • 举报
回复

protected void DrawWatchCircle()
{
int r = 150;//大圆半径
int r2 = 140;//小圆半径
int x1=0;
int x2 = 0;
int y1 = 0;
int y2=0;

Graphics g = panel2.CreateGraphics();
g.DrawArc(new Pen(Color.White, 2), 50, 50, 300, 300, 45, 360);//画大圆
//画刻度
for (int i = 0; i <= 180; i++)
{
if (i <= 90)
{
if (i % 2 == 0)
{
x1 = 200 - (int)(r * Math.Cos(i * Math.PI / 180));
y1 = 200 - (int)(r * Math.Sin(i * Math.PI / 180));
x2 = 200 - (int)(r2 * Math.Cos(i * Math.PI / 180));
y2 = 200 - (int)(r2 * Math.Sin(i * Math.PI / 180));
}
}
else
{
if (i % 2 == 0)
{
x1 = 200 + (int)(r * Math.Cos((180 - i) * Math.PI / 180));
y1 = 200 - (int)(r * Math.Sin((180 - i) * Math.PI / 180));
x2 = 200 + (int)(r2 * Math.Cos((180 - i) * Math.PI / 180));
y2 = 200 - (int)(r2 * Math.Sin((180 - i) * Math.PI / 180));
}
}
Point p1 = new Point(x1, y1);
Point p2 = new Point(x2, y2);
g.DrawLine(new Pen(Color.Red), p2, p1);//画刻度线
}
}

walkghost 2009-06-25
  • 打赏
  • 举报
回复
我画好了。谢谢各位,为自己的数学汗一个。
燃烧的荷尔蒙 2009-06-25
  • 打赏
  • 举报
回复
不懂GDI啊,接分吧
lowsong 2009-06-25
  • 打赏
  • 举报
回复
楼主找一张400*400的汽车码表图片...
用GDI画上去..然后再自己再两条直线(码表针)..就可以了..没有必要完全用GDI画
walkghost 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hetl_1985 的回复:]
没有明白楼主的意思?你要数学公式?还是什么?
[/Quote]
.net代码。
悔说话的哑巴 2009-06-25
  • 打赏
  • 举报
回复
没有明白楼主的意思?你要数学公式?还是什么?
happyboyxq 2009-06-25
  • 打赏
  • 举报
回复
顶一下
yuanhuiqiao 2009-06-25
  • 打赏
  • 举报
回复
不太难,坦白的说就实现而言,永不倒多少数学知识,真正的数学net都给你做好了
walkghost 2009-06-25
  • 打赏
  • 举报
回复
时钟代码我已经看过了。可我这猪脑子就是不好使。数学菜得一塌糊涂。。。。。
walkghost 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cdd1012 的回复:]
不会0度以下  不要c和f转换?
[/Quote]
C/F转换已经做过了。传过来的值就是C。带零度以下当然更好了。-20-120°C。
cdd1012 2009-06-24
  • 打赏
  • 举报
回复
不会0度以下 不要c和f转换?
wuyq11 2009-06-24
  • 打赏
  • 举报
回复
周药师 2009-06-24
  • 打赏
  • 举报
回复
画起来有些麻烦
找个现成的图片不得了
工控类的有这种的
walkghost 2009-06-24
  • 打赏
  • 举报
回复
UP下,回家洗澡洗衣服睡觉。
walkghost 2009-06-24
  • 打赏
  • 举报
回复
温度取值范围:0-100°C,湿度:0-100
cstester 2009-06-24
  • 打赏
  • 举报
回复
路过学习下GDI+技术....

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧