用C# 在面板上画以下图形.要求全代码计算要求用C#代码画出以下图形,外圆和内圆都是正圆,内圆大小相等,已知外圆直径和内圆的个数,要计算出内圆的直径和每个内圆的坐标.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 05:36:14
用C# 在面板上画以下图形.要求全代码计算要求用C#代码画出以下图形,外圆和内圆都是正圆,内圆大小相等,已知外圆直径和内圆的个数,要计算出内圆的直径和每个内圆的坐标.

用C# 在面板上画以下图形.要求全代码计算要求用C#代码画出以下图形,外圆和内圆都是正圆,内圆大小相等,已知外圆直径和内圆的个数,要计算出内圆的直径和每个内圆的坐标.
用C# 在面板上画以下图形.要求全代码计算
要求用C#代码画出以下图形,外圆和内圆都是正圆,内圆大小相等,已知外圆直径和内圆的个数,要计算出内圆的直径和每个内圆的坐标.

用C# 在面板上画以下图形.要求全代码计算要求用C#代码画出以下图形,外圆和内圆都是正圆,内圆大小相等,已知外圆直径和内圆的个数,要计算出内圆的直径和每个内圆的坐标.

上面兄台是把坐标算出来画,我的是画了再算,差不多,他的题目要求坐标的时候比我的好,但是如果不求坐标,用坐标系旋转更好,因为那样没有矩形位置计算,粘贴运行不了,在构造里面加this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

因为这句是vs事件添加的时候  后台自己 加上的

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
        /// <summary>
        /// 外圆半径
        /// </summary>
        private float radius = 0;
        /// <summary>
        /// 内圆数量
        /// </summary>
        private uint circlesCount = 0;
        /// <summary>
        /// 重写了paint响应
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            if (radius > 0 && circlesCount > 0)
            {
                Graphics g = e.Graphics;
                Pen pen = new Pen(Color.Black);
                g.DrawEllipse(pen, 0, 0, radius * 2, radius * 2);
                //获得小圆半径  r=R*sin(a/2)/[1+sin(a/2)] a为角度360.0f / circlesCount
                //这个我不会算,百度出来的,一个扇形内最大圆半径
                //而且函数要的是弧度,不是角度,还需要转换 弧度 = 角度 * PI / 180
                float angle = 360.0f / circlesCount;
                double radian = angle / 2 * Math.PI / 180f;
                float innerRadius = (float)(radius * (Math.Sin(radian) / (1 + Math.Sin(radian))));
                //内圆直径
                float innerDiameter = innerRadius * 2;

                PointF[] centers = new PointF[circlesCount];
                //把坐标系原点放在外圆圆心
                g.TranslateTransform(radius, radius);

                //这里完全是为了你要的求坐标,否则没这么复杂的转换坐标点
                for (int i = 0; i < circlesCount; i++)
                {
                    //在当前坐标系最底部画一个圆
                    g.DrawEllipse(pen, 0 - innerRadius, radius - innerDiameter, innerDiameter, innerDiameter);

                    //这个圆当前坐标系的圆心
                    PointF[] center = { new PointF(0, radius - innerRadius) };
                    //转换坐标点
                    g.Transform.TransformPoints(center);
                    centers[i] = center[0];
                    //把坐标系偏转对应角度
                    g.RotateTransform(angle);

                }

                //刚好转弯以后坐标系又成正常正北,正东 坐标系,
                //横纵坐标轴
                pen.Color = Color.Blue;
                g.DrawLine(pen, new PointF(0, -radius), new PointF(0, radius + 50));
                g.DrawLine(pen, new PointF(-radius, 0), new PointF(radius + 50, 0));

                //这样再转换一次坐标系就能得到正常0,0为圆心的坐标
                g.ResetTransform();
                g.TranslateTransform(-radius, -radius);
                g.Transform.TransformPoints(centers);


                g.ResetTransform();
                String s = "";
                for (int i = 0; i < circlesCount; i++)
                {
                    s += String.Format("第{0}个坐标是:{1},{2}\r\n", i + 1, centers[i].X, centers[i].Y);

                }
                g.DrawString(s, new Font("宋体", 10), Brushes.Red, new Point((int)radius + 10, (int)radius * 2 + 10));
            }

        }

        private void btnDraw_Click(object sender, EventArgs e)
        {
            radius = float.Parse(radiusTextbox.Text);
            circlesCount = uint.Parse(circlesCountTextBox.Text);
            this.Invalidate();
        }
    }

用C# 在面板上画以下图形.要求全代码计算要求用C#代码画出以下图形,外圆和内圆都是正圆,内圆大小相等,已知外圆直径和内圆的个数,要计算出内圆的直径和每个内圆的坐标. C# 输入10个整数,要求输出其平均值、最大值、最小值,求代码、请用C# 如何用C#画出五角星的图形,求代码 C#三维坐标系在C#中怎么画三维坐标系啊,要左手坐标系,最好附上代码. 用VS 2005编写,怎么用C#循环语句在屏幕上用”*”打印输出等腰三角形的图形?如下图:**** 还有一个题……在窗体上输出以下图形:就是一个倒放的 三角形(左) 和一个正放的三角形(右),用星号的就是这样的VB编程的代码哈 麻烦打印在面板上! 在c#代码里面加入 #region是什么意思呢? c#怎么在字上画横线的代码怎么写? c# 中的region 除了可以折叠代码还有什么用? 如何用C#画正弦函数图形 用c#做以下东西?概念,理论. 用C#语言编写,要求申明三角形类,继承图形抽象类,计算三角形的周长和面积! C#画直线的代码!(和windows画图工具一样的效果*)我的代码不对,不是射线状,就是没有画的过程.怎么样实现在屏幕上一点,拖出一个可变的直线,像橡皮条,松开后确定的那种!private void Drawing_Mous 用c#分析二维平面上的点和圆,定义相应的类及关系,并创建对象进行测试如题把代码写出来 C# 表达式树是什么表达式树允许将Lambda表达式表现为数据结构,而不是可执行代码.表达式树在哪用?用来干什么的? 改进弧长法 判断点是否在多边形内 c#代码 橱柜的不锈钢面板是用什么胶粘在木板上的