Пятница, 14.06.2024, 06:56
Информатика и математика в Плесской школе
Приветствую Вас Гость | RSS
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Программа построения треугольника по координатам с вычислением его элементов

Предлагаю внешний вид и исходный код небольшой программы которая строит треугольник по координатам в необходимом масштабе и вычисляет некоторые его элементы

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        int x1, x2, x3, y1, y2, y3;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            x1 = Convert.ToInt32(textBox1.Text);
            y1 = Convert.ToInt32(textBox2.Text);
            x2 = Convert.ToInt32(textBox3.Text);
            y2 = Convert.ToInt32(textBox4.Text);
            x3 = Convert.ToInt32(textBox5.Text);
            y3 = Convert.ToInt32(textBox6.Text);
            int k = comboBox1.SelectedIndex;
            int m =10;
            if (k == 0) m = 10;
            if (k == 1) m = 20;
            if (k == 2) m = 50;
            if (k == 3) m = 100;
         
           
// инициализируем графику
            Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
           
//очищаем поле для рисованиия

            //рисуем оси координат
            g.Clear(Color.White);
            for ( int i=0; i<600; i=i+m)

                                   g.DrawLine(new Pen(Color.DarkSeaGreen, 1), i, 0, i, 600);
            for (int i = 0; i < 600; i = i + m)

                                   g.DrawLine(new Pen(Color.DarkSeaGreen, 1), 0, i, 600, i);
            g.DrawLine(new Pen(Color.Blue, 1), 300, 0, 300, 600);
            g.DrawLine(new Pen(Color.Blue, 1), 0, 300, 600, 300);

            //рисуем треугольник
            y1 = -y1;
            y2 = -y2;
            y3 = -y3;
            g.DrawLine(new Pen(Color.Red,1),x1*m + 300,y1*m + 300,x2*m + 300,y2*m + 300);
            g.DrawLine(new Pen(Color.Red,1),x2*m + 300,y2*m + 300,x3*m + 300,y3*m + 300);
            g.DrawLine(new Pen(Color.Red,1),x1*m + 300,y1*m + 300,x3*m + 300,y3*m + 300);
            Font f = new System.Drawing.Font("Times New Roman", 12, System.Drawing.FontStyle.Bold);
           
// устанавливаем цвет
            SolidBrush f1 = new SolidBrush(Color.Green);
           
// выводим надписи
            g.DrawString("A", f, f1, x1 * m + 300, y1 * m + 300);
            g.DrawString("B", f, f1, x2 * m + 300, y2 * m + 300);
            g.DrawString("C", f, f1, x3 * m + 300, y3 * m + 300);

        }      

        private void Form1_Activated(object sender, EventArgs e)
        {
            textBox1.Text = "0";
            textBox2.Text = "0";
            textBox3.Text = "-10";
            textBox4.Text = "10";
            textBox5.Text = "10";
            textBox6.Text = "0";
        }

     

        private void button2_Click(object sender, EventArgs e)
        {
            x1 = Convert.ToInt32(textBox1.Text);
            y1 = Convert.ToInt32(textBox2.Text);
            x2 = Convert.ToInt32(textBox3.Text);
            y2 = Convert.ToInt32(textBox4.Text);
            x3 = Convert.ToInt32(textBox5.Text);
            y3 = Convert.ToInt32(textBox6.Text);

            //вычисляем стороны
            double ab = Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
            double bc = Math.Sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
            double ac = Math.Sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
            label16.Text = Convert.ToString(ab);
            label17.Text = Convert.ToString(bc);
            label18.Text = Convert.ToString(ac);
            
           
//периметр и площадь
            double p = ab + bc + ac;
            label21.Text = Convert.ToString(p);
            p=(ab+bc+ac)/2;
            double S = Math.Sqrt(p * (p - ab) * (p - bc) * (p - ac));
            label22.Text = Convert.ToString(S);
           
// углы
            //C углами будем рассматривать треугольник по теореме Kосинусов

            double cosA=(ac*ac+ab*ab-bc*bc)/(2*ac*ab);
            double cosB=(ab*ab+bc*bc-ac*ac)/(2*ab*bc);
            double cosC=(ac*ac+bc*bc-ab*ab)/(2*ac*bc);
 
            double A=Math.Acos(cosA);
            double B=Math.Acos(cosB);
            double C=Math.Acos(cosC);
            
         
   //Ответ из радиан  надо вернуть в божеский вид то есть в градусы
            A=(180*A)/3.14;
            B=(180*B)/3.14;
            C=(180*C)/3.14;
            label26.Text = Convert.ToString(A);
            label27.Text = Convert.ToString(B);
            label28.Text = Convert.ToString(C);
       
 }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

 

 

 

 

 

Поиск
Календарь
«  Июнь 2024  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Учительский портал
    Copyright MyCorp © 2024