مستقيم والمسافة بين نقطتين في جافا

الغرض من هذه المقالة هو معرفة كيفية إنشاء نقطة بالإحداثيات x و y في مستوى ثنائي الأبعاد ، ثم إنشاء نقطة ثانية وحساب المسافة بين الاثنين.

1) إنشاء الفئة نقطة

لتنظيم برنامجنا بشكل جيد ، يجب أن نتجنب إنشاء مثيلات متعددة من x و y (x1 ، x2,.. xn-y1,y2,.. yn). Java هي لغة موجهة للكائنات تتمتع بقدرة عالية على التجريد.

public class Point {

int x,y;

Public Point(int x, int y){
this.x=x;
this.y=y;
}

int getX العام () {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

الفراغ العام setY (int y) {
this.y = y ؛
}
}
< / pre>< / div>

2) إنشاء خط الفئة

يتكون الخط بنقطتين على الأقل P1 و P2 ، ويتم حساب المسافة بواسطة نظرية فيثاغورس: < / div >< div class = "فاصل" النمط = "واضح: كلاهما ؛ محاذاة النص: الوسط؛" >نظرية فيثاغورس
يتم تطبيق نظرية فيثاغورس عندما يكون المثلث مستطيلا ، تتم كتابة الصيغة: c² = a² + b². ثم يكون الطول هو جذر c² ويتم حسابه باستخدام الطريقة  Math.sqrt().

public class right {

dot p1, p2;

Public Right (dot p1, dot p2){
this.p1=p1;
this.p2=p2;
}

مزدوج الطول () {
إرجاع p1.distance (p2) ؛
}
}
< / pre>< / div>
الآن سنعلن عن طريقة المسافة () في فئة النقطة التي تسمح لك بإرجاع المسافة بين النقطة الحالية والنقطة الماضية كمعامل:

< pre class = "prettyprint lang-java">double distance (Point p) {
إرجاع Math.sqrt(((p.getX()-this.getX()) + (p.getY()-this.getY()));
}

مثال

public class main {

الفراغ العام الثابت الرئيسي (String[] args) {

النقطة p1 = نقطة جديدة(2, 3);
النقطة p2 = النقطة الجديدة (5 ، 8) ؛
خط مستقيم = مستقيم جديد (p1 ، p2) ؛
System.out.println (Right.length ()) ؛

النقطة p3 = النقطة الجديدة (7 ، 3) ؛
System.out.println("المسافة بين النقطة("+p1.getX()+", "+p1.getY()+
") والنقطة ("+p2.getX()+", "+p2.getY()+": "+p1.distance (p3));
}
}
< / pre>< / div>
الإخراج:

2.8284271247461903
المسافة بين النقطة (2 ، 3) والنقطة (5 ، 8): 2.23606797749979
< / pre>< / div>المراجع:
Wikipedia: Right(mathematics)
Wikipedia:  نظرية فيثاغورس
Oracle Documentation: Math.sqrt