Уравнение для плоскости по координатам 3 точек - C#

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, написать программу на C#, которая по координатам 3-ех точек плоскости (x1,x2,x3, y1,y2,y3,z1,z2,z3) находит коэффициенты A, B, C и D в уравнении плоскости Ax + By + Cz + D = 0. Спасибо!

Решение задачи: «Уравнение для плоскости по координатам 3 точек»

textual
Листинг программы
  1.  private void button_Calc_Click(object sender, EventArgs e)
  2.         {
  3.  
  4.  
  5.                         double x1 = Convert.ToDouble(dataGridView1.Rows[0].Cells[1].Value); // 10
  6.                        double y1 = Convert.ToDouble(dataGridView1.Rows[0].Cells[2].Value); //23;
  7.                        double z1 = Convert.ToDouble(dataGridView1.Rows[0].Cells[3].Value); //45;
  8.                        double x2 = Convert.ToDouble(dataGridView1.Rows[1].Cells[1].Value); //1;
  9.                        double y2 = Convert.ToDouble(dataGridView1.Rows[1].Cells[2].Value); //12;
  10.                        double z2 = Convert.ToDouble(dataGridView1.Rows[1].Cells[3].Value); //1;
  11.                        double x3 = Convert.ToDouble(dataGridView1.Rows[2].Cells[1].Value); //2;
  12.                        double y3 = Convert.ToDouble(dataGridView1.Rows[2].Cells[2].Value); //33;
  13.                        double z3 = Convert.ToDouble(dataGridView1.Rows[2].Cells[3].Value); //5;
  14.  
  15.                         double a=0;
  16.                        double b=0;
  17.                        double c=0;
  18.                        double d = 0;
  19.                        SurfaceCalculation(x1, y1, z1, x2, y2, z2, x3, y3, z3,ref a,ref b,ref c,ref d);
  20.            
  21.                     }
  22.  
  23.                     public bool SurfaceCalculation(
  24.                        double x1,
  25.                        double y1,
  26.                        double z1,
  27.                        double x2,
  28.                        double y2,
  29.                        double z2,
  30.                        double x3,
  31.                        double y3,
  32.                        double z3,
  33.                        ref double a,
  34.                        ref double b,    
  35.                        ref double c ,
  36.                         ref double d    
  37.                         )
  38.  
  39.            
  40.             double k2 = x1 - x2;
  41.            
  42.             if (k2 == 0)
  43.                 return false;
  44.          
  45.  
  46.             //-------------------
  47.             a = y1 *(z2 - z3) + y2 *(z3 - z1) + y3* (z1 - z2) ;
  48.             b = z1 *(x2 - x3) + z2 *(x3 - x1) + z3 *(x1 - x2);
  49.             c = x1 *(y2 - y3) + x2 *(y3 - y1) + x3 *(y1 - y2) ;
  50.             d = -(x1 * (y2 * z3 - y3 * z2) + x2 * (y3 * z1 - y1 * z3) + x3 * (y1 * z2 - y2 * z1));
  51.             //-----------------
  52.  
  53.             textBox1.Text = a.ToString();
  54.             textBox2.Text = b.ToString();
  55.             textBox3.Text = c.ToString();
  56.             textBox4.Text =d.ToString();
  57.             return true;
  58.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы