لقد كتبت فئة المثلث هذه في لغة C#، ولدي دالة تُرجع المنطقة، لكنها لا تُرجع الرقم الصحيح في كثير من الأحيان. يعتمد ذلك على صيغة الهندسة الإحداثية: المساحة = القيمة المطلقة لـ Ax(By - Cy) + Bx(Cy - Ay) + Cx(Ay - By) مقسومة على 2. هل يمكنك مساعدتي في العثور على المشكلة؟

باستخدام System.Windows؛
باطلة الرئيسية ()
{
var t = new Triangle(new Point(0,0), new Point(0,2),new Point(2,0));
Console.WriteLine(t.Area);//المتوقع 2

t = مثلث جديد(نقطة جديدة(10,17)، نقطة جديدة(25,5)،نقطة جديدة(28,19));
Console.WriteLine(t.Area);//المتوقع 123
}

مثلث الطبقة
{
النقطة الخاصة v1، v2، v3؛

المثلث العام (النقطة v1، النقطة v2، النقطة v3)
{
this.v1 = v1;
this.v2 = v2;
this.v3 = v3;
}

منطقة مزدوجة عامة
{
يحصل
{
إرجاع Math.Abs(v1.X * (v2.Y - v3.Y) +
v2.X * (v3.Y - v1.Y) +
v3.X * (v1.Y - v2.Y) / 2)؛
}
}
}
system
لقد كتبت فئة المثلث هذه في لغة C#، ولدي دالة تُرجع المنطقة، لكنها لا تُرجع الرقم الصحيح في كثير من الأحيان. يعتمد ذلك على صيغة الهندسة الإحداثية: المساحة = القيمة المطلقة لـ Ax(By - Cy) + Bx(Cy - Ay) + Cx(Ay - By) مقسومة على 2. هل يمكنك مساعدتي في العثور على المشكلة؟

باستخدام System.Windows؛
باطلة الرئيسية ()
{
var t = new Triangle(new Point(0,0), new Point(0,2),new Point(2,0));
Console.WriteLine(t.Area);//المتوقع 2

t = مثلث جديد(نقطة جديدة(10,17)، نقطة جديدة(25,5)،نقطة جديدة(28,19));
Console.WriteLine(t.Area);//المتوقع 123
}

مثلث الطبقة
{
النقطة الخاصة v1، v2، v3؛

المثلث العام (النقطة v1، النقطة v2، النقطة v3)
{
this.v1 = v1;
this.v2 = v2;
this.v3 = v3;
}

منطقة مزدوجة عامة
{
يحصل
{
إرجاع Math.Abs(v1.X * (v2.Y - v3.Y) +
v2.X * (v3.Y - v1.Y) +
v3.X * (v1.Y - v2.Y) / 2)؛
}
}
}
user
يبدو أن قسمتك على 2 في صيغة المنطقة في غير محلها. وفقًا للصيغة الإحداثية التي أشرت إليها، يجب قسمة القيمة المطلقة للنواتج الثلاثة المجمعة على اثنين. مع الكود الحالي، يتم تقسيم المنتج النهائي فقط. يمكنك استخدام هذا بدلاً من ذلك لإصلاح المشكلة:

منطقة مزدوجة عامة
        {
                يحصل
                {
                        إرجاع Math.Abs(v1.X * (v2.Y - v3.Y) +
                        v2.X * (v3.Y - v1.Y) +
                        v3.X * (v1.Y - v2.Y)) / 2;
                }
        }
assistant
system
لقد كتبت فئة المثلث هذه في لغة C#، ولدي دالة تُرجع المنطقة، لكنها لا تُرجع الرقم الصحيح في كثير من الأحيان. يعتمد ذلك على صيغة الهندسة الإحداثية: المساحة = القيمة المطلقة لـ Ax(By - Cy) + Bx(Cy - Ay) + Cx(Ay - By) مقسومة على 2. هل يمكنك مساعدتي في العثور على المشكلة؟

باستخدام System.Windows؛
باطلة الرئيسية ()
{
var t = new Triangle(new Point(0,0), new Point(0,2),new Point(2,0));
Console.WriteLine(t.Area);//المتوقع 2

t = مثلث جديد(نقطة جديدة(10,17)، نقطة جديدة(25,5)،نقطة جديدة(28,19));
Console.WriteLine(t.Area);//المتوقع 123
}

مثلث الطبقة
{
النقطة الخاصة v1، v2، v3؛

المثلث العام (النقطة v1، النقطة v2، النقطة v3)
{
this.v1 = v1;
this.v2 = v2;
this.v3 = v3;
}

منطقة مزدوجة عامة
{
يحصل
{
إرجاع Math.Abs(v1.X * (v2.Y - v3.Y) +
v2.X * (v3.Y - v1.Y) +
v3.X * (v1.Y - v2.Y) / 2)؛
}
}
}
user
يبدو أن المشكلة تكمن في صيغة حساب المساحة.

أعتقد أن المشكلة تكمن في صيغة حساب المساحة.

يبدو أن المشكلة تكمن في صيغة حساب المساحة.

يبدو أن المشكلة تكمن في صي
assistant