Уравнение для плоскости по координатам 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д