none
Área de figuras geométricas: triángulo, cuadrado, rectángulo, elipse. [con su respectiva figura] RRS feed

  • Pregunta

  • alguien me puede ayudar en este es de hacer un menu pero con su respectiva figura de esas areas no se como ponerselas esas figuras
    • Editado Diego321 sábado, 7 de marzo de 2020 19:33
    sábado, 7 de marzo de 2020 3:33

Todas las respuestas

  • Hola:

    Aquí hay documentaciones.

    https://docs.microsoft.com/es-es/dotnet/framework/winforms/advanced/pens-lines-and-rectangles-in-gdi


    http://electronica-pic.blogspot.com

    sábado, 7 de marzo de 2020 9:07
  • Hola Diego

    Para dibujar las figuras primero tenes que tener un objeto de la clase Graphics, que lo conseguis del form, así:

    Graphics g = this.CreateGraphics();

    o si no en un pictureBox, así:

    Bitmap img = new Bitmap(500, 300);
    pictureBox1.Image = img;
    Graphics g = Graphics.FromFile(pictureBox1.Image);
    
    

    Luego invocas los métodos de la clase Graphics, como DrawEllipse() o DrawRectangle()

    No recuerdo las listas de argumentos de los métodos, porque no los uso, pero el Intellisense te lo va a ir diciendo

    "hacer un meno" será un menú? Me podes explicar un poco mejor eso y que es lo que necesitas?

    Saludos

    Pablo

    sábado, 7 de marzo de 2020 16:35
  • necesito hacer como un menu si por ejemplo selecciono triangulo pongo la base y la altura  me de su area y que me salga al mismo tiempo la figura del triangulo junto con la respuesta
    • Editado Diego321 sábado, 7 de marzo de 2020 19:36
    sábado, 7 de marzo de 2020 19:36
  • hola

    >>me salga al mismo tiempo la figura del triangulo junto con la respuesta

    Si instalas el

     Microsoft Visual Basic Power Packs 3.0

    VisualBasic PowerPack missing from Visual Studio 2013?

    tendras controles de figuras

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 7 de marzo de 2020 22:47
  • Hola Diego

    Ya tengo hecha tu aplicación. Cuando los chicos me resuelvan el problema de como cristalizar un double en un string (que no estoy lográndolo), ahí te la paso. Y te dejaría a vos como ejercicio hacer lo del cálculo del área para un polígono regular (o inscripto en la circunferencia).

    Saludos

    domingo, 8 de marzo de 2020 22:30
  • Hola Diego

    Tal cual lo prometido, sale con fritas la aplicación "Figuras Geométricas", gracias a los Sres. Leandro, Alberto, y Marti, que ayudaron resolviendo el problema de la conversión de double a string. Tenes que usar la coma en lugar del punto decimal (o no se, como será en tu máquina, si no, proba al revés). 

    Te paso primero el Form1.Designer.cs y luego el Form1.cs. Y te dejo como ejercicio incluir el polígono regular o inscripto en la circunferencia, cuya área es: 

    Perímetro por apotema dividido 2

    El perímetro es lado x n (n es la cantidad de lados, que son todos iguales).

    El apotema es la altura de cada uno de los triángulos (iguales) que se forman con vértices en el centro (del polígono o la circunferencia) y cada pareja de vértices contiguos del polígono. Lo podes calcular haciendo "Pitágoras" con la mitad de un lado y el radio como hipotenusa. Así:

    apotema = Raíz cuadrada ( radio ^ 2 - (lado / 2) ^ 2 )

    namespace WinFormsFiguras
    {
        partial class Form1
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            #region Windows Form Designer generated code
    
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.menuStrip1 = new System.Windows.Forms.MenuStrip();
                this.figurasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.cuadradoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.rectánguloToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.trianguloToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.círculoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.elipseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.separator1 = new System.Windows.Forms.ToolStripSeparator();
                this.salirToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
                this.pictureBox1 = new System.Windows.Forms.PictureBox();
                this.label1 = new System.Windows.Forms.Label();
                this.label2 = new System.Windows.Forms.Label();
                this.label3 = new System.Windows.Forms.Label();
                this.label4 = new System.Windows.Forms.Label();
                this.textBox1 = new System.Windows.Forms.TextBox();
                this.textBox2 = new System.Windows.Forms.TextBox();
                this.button1 = new System.Windows.Forms.Button();
                this.label5 = new System.Windows.Forms.Label();
                this.menuStrip1.SuspendLayout();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
                this.SuspendLayout();
                // 
                // menuStrip1
                // 
                this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
                this.figurasToolStripMenuItem});
                this.menuStrip1.Location = new System.Drawing.Point(0, 0);
                this.menuStrip1.Name = "menuStrip1";
                this.menuStrip1.Size = new System.Drawing.Size(559, 24);
                this.menuStrip1.TabIndex = 0;
                this.menuStrip1.Text = "menuStrip1";
                // 
                // figurasToolStripMenuItem
                // 
                this.figurasToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
                this.cuadradoToolStripMenuItem,
                this.rectánguloToolStripMenuItem,
                this.trianguloToolStripMenuItem,
                this.círculoToolStripMenuItem,
                this.elipseToolStripMenuItem,
                this.separator1,
                this.salirToolStripMenuItem});
                this.figurasToolStripMenuItem.Name = "figurasToolStripMenuItem";
                this.figurasToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
                this.figurasToolStripMenuItem.Text = "Figuras";
                // 
                // cuadradoToolStripMenuItem
                // 
                this.cuadradoToolStripMenuItem.Name = "cuadradoToolStripMenuItem";
                this.cuadradoToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
                this.cuadradoToolStripMenuItem.Text = "Cuadrado ...";
                this.cuadradoToolStripMenuItem.Click += new System.EventHandler(this.cuadradoToolStripMenuItem_Click);
                // 
                // rectánguloToolStripMenuItem
                // 
                this.rectánguloToolStripMenuItem.Name = "rectánguloToolStripMenuItem";
                this.rectánguloToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
                this.rectánguloToolStripMenuItem.Text = "Rectángulo ...";
                this.rectánguloToolStripMenuItem.Click += new System.EventHandler(this.rectánguloToolStripMenuItem_Click);
                // 
                // trianguloToolStripMenuItem
                // 
                this.trianguloToolStripMenuItem.Name = "trianguloToolStripMenuItem";
                this.trianguloToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
                this.trianguloToolStripMenuItem.Text = "Triángulo ...";
                this.trianguloToolStripMenuItem.Click += new System.EventHandler(this.trianguloToolStripMenuItem_Click);
                // 
                // círculoToolStripMenuItem
                // 
                this.círculoToolStripMenuItem.Name = "círculoToolStripMenuItem";
                this.círculoToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
                this.círculoToolStripMenuItem.Text = "Círculo ...";
                this.círculoToolStripMenuItem.Click += new System.EventHandler(this.círculoToolStripMenuItem_Click);
                // 
                // elipseToolStripMenuItem
                // 
                this.elipseToolStripMenuItem.Name = "elipseToolStripMenuItem";
                this.elipseToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
                this.elipseToolStripMenuItem.Text = "Elipse ...";
                this.elipseToolStripMenuItem.Click += new System.EventHandler(this.elipseToolStripMenuItem_Click);
                // 
                // separator1
                // 
                this.separator1.Name = "separator1";
                this.separator1.Size = new System.Drawing.Size(143, 6);
                // 
                // salirToolStripMenuItem
                // 
                this.salirToolStripMenuItem.Name = "salirToolStripMenuItem";
                this.salirToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
                this.salirToolStripMenuItem.Text = "Salir";
                this.salirToolStripMenuItem.Click += new System.EventHandler(this.salirToolStripMenuItem_Click);
                // 
                // pictureBox1
                // 
                this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left;
                this.pictureBox1.Location = new System.Drawing.Point(0, 24);
                this.pictureBox1.Name = "pictureBox1";
                this.pictureBox1.Size = new System.Drawing.Size(314, 322);
                this.pictureBox1.TabIndex = 1;
                this.pictureBox1.TabStop = false;
                this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
                // 
                // label1
                // 
                this.label1.AutoSize = true;
                this.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                this.label1.Location = new System.Drawing.Point(341, 50);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(44, 15);
                this.label1.TabIndex = 2;
                this.label1.Text = "Figura: ";
                // 
                // label2
                // 
                this.label2.AutoSize = true;
                this.label2.Location = new System.Drawing.Point(341, 129);
                this.label2.Name = "label2";
                this.label2.Size = new System.Drawing.Size(35, 13);
                this.label2.TabIndex = 3;
                this.label2.Text = "label2";
                this.label2.Visible = false;
                // 
                // label3
                // 
                this.label3.AutoSize = true;
                this.label3.Location = new System.Drawing.Point(341, 165);
                this.label3.Name = "label3";
                this.label3.Size = new System.Drawing.Size(35, 13);
                this.label3.TabIndex = 4;
                this.label3.Text = "label3";
                this.label3.Visible = false;
                // 
                // label4
                // 
                this.label4.AutoSize = true;
                this.label4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                this.label4.Location = new System.Drawing.Point(341, 208);
                this.label4.Name = "label4";
                this.label4.Size = new System.Drawing.Size(34, 15);
                this.label4.TabIndex = 5;
                this.label4.Text = "Área:";
                // 
                // textBox1
                // 
                this.textBox1.Location = new System.Drawing.Point(412, 126);
                this.textBox1.Name = "textBox1";
                this.textBox1.Size = new System.Drawing.Size(65, 20);
                this.textBox1.TabIndex = 6;
                this.textBox1.Visible = false;
                // 
                // textBox2
                // 
                this.textBox2.Location = new System.Drawing.Point(412, 162);
                this.textBox2.Name = "textBox2";
                this.textBox2.Size = new System.Drawing.Size(65, 20);
                this.textBox2.TabIndex = 7;
                this.textBox2.Visible = false;
                // 
                // button1
                // 
                this.button1.Location = new System.Drawing.Point(362, 301);
                this.button1.Name = "button1";
                this.button1.Size = new System.Drawing.Size(115, 23);
                this.button1.TabIndex = 8;
                this.button1.Text = "Calcular Área";
                this.button1.UseVisualStyleBackColor = true;
                this.button1.Click += new System.EventHandler(this.button1_Click);
                // 
                // label5
                // 
                this.label5.AutoSize = true;
                this.label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                this.label5.Location = new System.Drawing.Point(341, 87);
                this.label5.Name = "label5";
                this.label5.Size = new System.Drawing.Size(49, 15);
                this.label5.TabIndex = 9;
                this.label5.Text = "Fórmula:";
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(559, 346);
                this.Controls.Add(this.label5);
                this.Controls.Add(this.button1);
                this.Controls.Add(this.textBox2);
                this.Controls.Add(this.textBox1);
                this.Controls.Add(this.label4);
                this.Controls.Add(this.label3);
                this.Controls.Add(this.label2);
                this.Controls.Add(this.label1);
                this.Controls.Add(this.pictureBox1);
                this.Controls.Add(this.menuStrip1);
                this.MainMenuStrip = this.menuStrip1;
                this.MaximizeBox = false;
                this.Name = "Form1";
                this.Text = "Aplicación Figuras Geométricas";
                this.Load += new System.EventHandler(this.Form1_Load);
                this.menuStrip1.ResumeLayout(false);
                this.menuStrip1.PerformLayout();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
                this.ResumeLayout(false);
                this.PerformLayout();
    
            }
    
            #endregion
    
            private System.Windows.Forms.MenuStrip menuStrip1;
            private System.Windows.Forms.ToolStripMenuItem figurasToolStripMenuItem;
            private System.Windows.Forms.ToolStripMenuItem cuadradoToolStripMenuItem;
            private System.Windows.Forms.ToolStripMenuItem rectánguloToolStripMenuItem;
            private System.Windows.Forms.ToolStripMenuItem trianguloToolStripMenuItem;
            private System.Windows.Forms.ToolStripMenuItem círculoToolStripMenuItem;
            private System.Windows.Forms.ToolStripMenuItem elipseToolStripMenuItem;
            private System.Windows.Forms.ToolStripSeparator separator1;
            private System.Windows.Forms.ToolStripMenuItem salirToolStripMenuItem;
            private System.Windows.Forms.PictureBox pictureBox1;
            private System.Windows.Forms.Label label1;
            private System.Windows.Forms.Label label2;
            private System.Windows.Forms.Label label3;
            private System.Windows.Forms.Label label4;
            private System.Windows.Forms.TextBox textBox1;
            private System.Windows.Forms.TextBox textBox2;
            private System.Windows.Forms.Button button1;
            private System.Windows.Forms.Label label5;
        }
    }


    using System;
    using System.Drawing;
    using System.Windows.Forms;

    namespace WinFormsFiguras
    {
        public enum Figuras { Cuadrado, Rectangulo, Triangulo, Circulo, Elipse, Poligoino }

        public partial class Form1 : Form
        {
            private Figuras figura;

            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                pictureBox1.BackColor = Color.White;
            }

            private void cuadradoToolStripMenuItem_Click(object sender, EventArgs e)
            {
                figura = Figuras.Cuadrado;
                pictureBox1.Invalidate();

                label1.Text = "Figura: CUADRADO";

                label5.Text = "Fórmula: lado al cuadrado";

                label2.Visible = true;
                textBox1.Visible = true;

                label2.Text = "Lado: ";

                textBox1.Text = "";
                textBox1.Focus();

                label3.Visible = false;
                textBox2.Visible = false;

                label4.Text = "Area: ";
            }

            private void rectánguloToolStripMenuItem_Click(object sender, EventArgs e)
            {
                figura = Figuras.Rectangulo;
                pictureBox1.Invalidate();

                label1.Text = "Figura: RECTANGULO";

                label5.Text = "Fórmula: base por altura";

                label2.Text = "Base: ";

                label2.Visible = true;
                textBox1.Visible = true;

                label3.Text = "Altura: ";

                textBox1.Text = "";
                textBox1.Focus();
                textBox2.Text = "";

                label3.Visible = true;
                textBox2.Visible = true;

                label4.Text = "Area: ";
            }

            private void trianguloToolStripMenuItem_Click(object sender, EventArgs e)
            {
                figura = Figuras.Triangulo;
                pictureBox1.Invalidate();

                label1.Text = "Figura: TRIANGULO";

                label5.Text = "Fórmula: base por altura dividido 2";

                label3.Visible = true;
                textBox2.Visible = true;

                label2.Text = "Base: ";

                label2.Visible = true;
                textBox1.Visible = true;

                label3.Text = "Altura: ";

                textBox1.Text = "";
                textBox1.Focus();
                textBox2.Text = "";

                label4.Text = "Area: ";
            }

            private void círculoToolStripMenuItem_Click(object sender, EventArgs e)
            {
                figura = Figuras.Circulo;
                pictureBox1.Invalidate();

                label1.Text = "Figura: CIRCULO";

                label5.Text = "Fórmula: PI por radio al cuadrado";

                label2.Visible = true;
                textBox1.Visible = true;

                label2.Text = "Radio: ";

                label3.Visible = false;
                textBox2.Visible = false;

                textBox1.Text = "";
                textBox1.Focus();

                label4.Text = "Area: ";
            }

            private void elipseToolStripMenuItem_Click(object sender, EventArgs e)
            {
                figura = Figuras.Elipse;
                pictureBox1.Invalidate();

                label1.Text = "Figura: ELIPSE";

                label5.Text = "Fórmula: PI por radio mayor por radio menor";

                label2.Text = "Radio mayor: ";

                label3.Text = "Radio menor: ";

                textBox1.Text = "";
                textBox1.Focus();
                textBox2.Text = "";

                label3.Visible = true;
                textBox2.Visible = true;

                label4.Text = "Area: ";
            }

            private void salirToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                double area;
                try
                {
                    if (figura == Figuras.Cuadrado)
                    {
                        area = Math.Pow(Convert.ToDouble(textBox1.Text), 2);
                        label4.Text = "Area: " + area.ToString("N6");
                    }
                    else if (figura == Figuras.Rectangulo)
                    {
                        area = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text);
                        label4.Text = "Area: " + area.ToString("N6");
                    }
                    else if (figura == Figuras.Triangulo)
                    {
                        area = (Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text) / 2.0);
                        label4.Text = "Area: " + area.ToString("N6");
                    }
                    else if (figura == Figuras.Circulo)
                    {
                        area = (Math.PI * Math.Pow(Convert.ToDouble(textBox1.Text), 2));
                        label4.Text = "Area: " + area.ToString("N6");
                    }
                    else if (figura == Figuras.Elipse)
                    {
                        area = (Math.PI * Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text));
                        label4.Text = "Area: " + area.ToString("N6");
                    }
                }
                catch (FormatException ex)
                {
                    MessageBox.Show(ex.Message, "Error de Formato");
                }
            }

            private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                Pen pen;
                if (figura == Figuras.Cuadrado)
                {
                    pen = new Pen(Color.Red, 3);
                    e.Graphics.DrawRectangle(pen, 70, 70, 150, 150);
                }
                else if (figura == Figuras.Rectangulo)
                {
                    pen = new Pen(Color.Green, 3);
                    e.Graphics.DrawRectangle(pen, 50, 80, 180, 100);
                }
                else if (figura == Figuras.Triangulo)
                {
                    pen = new Pen(Color.Blue, 3);
                    e.Graphics.DrawLines(pen, new Point[] { new Point(120, 50), new Point(40, 180), new Point(220, 180), new Point(120, 50) });
                }
                else if (figura == Figuras.Circulo)
                {
                    pen = new Pen(Color.Yellow, 3);
                    e.Graphics.DrawEllipse(pen, 60, 60, 160, 160);
                }
                else if (figura == Figuras.Elipse)
                {
                    pen = new Pen(Color.Brown, 3);
                    e.Graphics.DrawEllipse(pen, 60, 60, 210, 130);
                }
                pictureBox1.Refresh();
            }
        }
    }

    Espero te sea útil

    Saludos

    Pablo



    lunes, 9 de marzo de 2020 0:33
  • Hola Diego,

    Modifiqué (apenas) el segundo archivo, porque no me había dado cuenta que faltaba retocar algunas cosas. Ya está bien ahora.

    Saludos

    Pablo

    lunes, 9 de marzo de 2020 22:16
  • muchas gracias 

    pablo

    miércoles, 11 de marzo de 2020 0:32