当前位置:编程学习 > C#/ASP.NET >>

自定义指针问题

大虾们,我做了个仪表盘,中间的指针做成一个三角形和一个圆,但这个三角形在转动的时候有抖动的现象,很不美观,三角形由3个点组成,这3个点都会随着转动而改变,就是在40到60的时候会抖动,大侠们知道是怎么回事嘛?或者有木有其他办法做这个指针?



--------------------编程问答--------------------
//b1x=68
            int b1x = (int)(cer - 5 * Math.Cos(rad));
            //b1y=62 
            int b1y = (int)(cer - 4 * Math.Sin(rad));

            int b2x = (int)(cer + 4 * Math.Cos(rad));
            int b2y = (int)(cer + 5 * Math.Sin(rad));
            int dx = (int)(cer + (_PinLen) * Math.Cos(rad));
            int dy = (int)(cer + (_PinLen) * Math.Sin(rad));
            PointF point1 = new PointF(b2y, b1x);
            PointF point2 = new PointF(b1y, b2x);
            PointF point3 = new PointF(dx, dy);

            PointF[] curvePoints = { point1, point2, point3 };
            //总共6等分的sweepShot=0的时候就是仪表盘上的0
            //然后依次加45就是第二个刻度数,总共270,正上方为135
            if (sweepShot < 180)
            {
                g.FillPolygon(brushGreen, curvePoints);
            }
            else
            {
                g.FillPolygon(brushRed, curvePoints);
            }
            

cer为直径的一半,就是圆心的坐标。_PinLen为指针长度。
 int tmpWidth = 7;
            int px = _diameter / 2 - tmpWidth;
            float sweepShot = (float)(_changeValue / _maxValue * 270.0);

            //总共6等分的sweepShot=0的时候就是仪表盘上的0
            //然后依次加45就是第二个刻度数,总共270,正上方为135
            if (sweepShot < 180)
            {
                gp.FillEllipse(new SolidBrush(Color.Green), new Rectangle(px, px, 2 * tmpWidth, 2 * tmpWidth));
            }
            else
            {
                gp.FillEllipse(new SolidBrush(Color.Red), new Rectangle(px, px, 2 * tmpWidth, 2 * tmpWidth));
            }

画中间那个圆 --------------------编程问答-------------------- 我勒个去,看这标题进来的,再一看内容,这也能偷换概念? --------------------编程问答--------------------
引用 2 楼 danding_ge 的回复:
我勒个去,看这标题进来的,再一看内容,这也能偷换概念?


哈哈,我也被忽悠了 --------------------编程问答-------------------- 对绘图的控件,doubblebuffer=true --------------------编程问答--------------------
引用 楼主 mznxbc123456 的回复:
大虾们,我做了个仪表盘,中间的指针做成一个三角形和一个圆,但这个三角形在转动的时候有抖动的现象,很不美观,三角形由3个点组成,这3个点都会随着转动而改变,就是在40到60的时候会抖动,大侠们知道是怎么回事嘛?或者有木有其他办法做这个指针?


你这是高档低速,所以抖动了,得降挡了 --------------------编程问答--------------------
引用 4 楼 bdmh 的回复:
对绘图的控件,doubblebuffer=true

请问大侠这句什么意思啊 
能说清楚点嘛 在哪里定义doubblebuffer啊
要是可以分都给你 --------------------编程问答-------------------- 自己再给自己顶一下~ --------------------编程问答--------------------
引用 6 楼 mznxbc123456 的回复:
Quote: 引用 4 楼 bdmh 的回复:

对绘图的控件,doubblebuffer=true

请问大侠这句什么意思啊 
能说清楚点嘛 在哪里定义doubblebuffer啊
要是可以分都给你
大神貌似多谢了b
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,