已知拱高和弦长,求弧长、半径、角度

来源:互联网 发布:淘宝首页图片怎么设置 编辑:程序博客网 时间:2024/04/28 16:10

按钮click事件代码:

       private void btnCal_Click(object sender, EventArgs e)
        {
            if (txth.Text.Trim() == "")
            {
                errorProvider1.SetError(txth, "拱高不能为空!");
                txth.Focus();
                return;
            }
            if (txtw.Text.Trim() == "")
            {
                txtw.Focus();
                errorProvider1.SetError(txtw, "弦长不能为空!");
                return;
            }


            double h = Convert.ToDouble(txth.Text);
            double w = Convert.ToDouble(txtw.Text);
            double r = (Math.Pow(h, 2.0) + Math.Pow(w, 2.0) / 4.0) / (h * 2.0);
            double a = 2 * Math.Asin(w / 2 / r);    //第一法 注意这是个孤度值,不是微软说的角度值,纠结之处吧! 
            //     double a = Math.Acos(Math.Pow((r - h) / r,2) *2-1);  //第二法

            double l = a * r;

    //以下为那个劣孤/优孤之处理
            if (h > r)
            {
                l = 2 * Math.PI * r - l;
                a = 2 * Math.PI - a;
            }

            lblr.Text = r.ToString();//显示半径
            lbla.Text = (a * 180 / Math.PI).ToString();//转为角度显示
            lbll.Text = l.ToString();//显示孤长

        }

 

限制文本框输入的代码,相关文本框KeyPress与之相绑定即可

        private void txt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == '.' || (byte)(e.KeyChar) == 8)
            {
            }
            else
            {
                e.Handled = true;
            }
        }

另外可加些处理,比如回车

        private void txtw_KeyUp(object sender, KeyEventArgs e)
        {
            errorProvider1.SetError(txtw, "");
            if (e.KeyCode == Keys.Enter) btnCal_Click(null, null);
        }

        private void txth_KeyUp(object sender, KeyEventArgs e)
        {
            errorProvider1.SetError(txth, "");
            if (e.KeyCode == Keys.Enter) txtw.Focus();
        }

第一次显示则聚焦在第一个文本上

        private void FormMain_Shown(object sender, EventArgs e)
        {
            txth.Focus();
        }

有图有真相:(注意三种不同的夹角)

厂里正好用上此类小程序的。

原创粉丝点击