Уравнение для плоскости по координатам 3 точек - C#
Формулировка задачи:
Помогите, пожалуйста, написать программу на C#, которая по координатам 3-ех точек плоскости (x1,x2,x3, y1,y2,y3,z1,z2,z3) находит коэффициенты A, B, C и D в уравнении плоскости Ax + By + Cz + D = 0. Спасибо!
Решение задачи: «Уравнение для плоскости по координатам 3 точек»
textual
Листинг программы
- private void button_Calc_Click(object sender, EventArgs e)
- {
- double x1 = Convert.ToDouble(dataGridView1.Rows[0].Cells[1].Value); // 10
- double y1 = Convert.ToDouble(dataGridView1.Rows[0].Cells[2].Value); //23;
- double z1 = Convert.ToDouble(dataGridView1.Rows[0].Cells[3].Value); //45;
- double x2 = Convert.ToDouble(dataGridView1.Rows[1].Cells[1].Value); //1;
- double y2 = Convert.ToDouble(dataGridView1.Rows[1].Cells[2].Value); //12;
- double z2 = Convert.ToDouble(dataGridView1.Rows[1].Cells[3].Value); //1;
- double x3 = Convert.ToDouble(dataGridView1.Rows[2].Cells[1].Value); //2;
- double y3 = Convert.ToDouble(dataGridView1.Rows[2].Cells[2].Value); //33;
- double z3 = Convert.ToDouble(dataGridView1.Rows[2].Cells[3].Value); //5;
- double a=0;
- double b=0;
- double c=0;
- double d = 0;
- SurfaceCalculation(x1, y1, z1, x2, y2, z2, x3, y3, z3,ref a,ref b,ref c,ref d);
- }
- public bool SurfaceCalculation(
- double x1,
- double y1,
- double z1,
- double x2,
- double y2,
- double z2,
- double x3,
- double y3,
- double z3,
- ref double a,
- ref double b,
- ref double c ,
- ref double d
- )
- double k2 = x1 - x2;
- if (k2 == 0)
- return false;
- //-------------------
- a = y1 *(z2 - z3) + y2 *(z3 - z1) + y3* (z1 - z2) ;
- b = z1 *(x2 - x3) + z2 *(x3 - x1) + z3 *(x1 - x2);
- c = x1 *(y2 - y3) + x2 *(y3 - y1) + x3 *(y1 - y2) ;
- d = -(x1 * (y2 * z3 - y3 * z2) + x2 * (y3 * z1 - y1 * z3) + x3 * (y1 * z2 - y2 * z1));
- //-----------------
- textBox1.Text = a.ToString();
- textBox2.Text = b.ToString();
- textBox3.Text = c.ToString();
- textBox4.Text =d.ToString();
- return true;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д