Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาจุดปลายอีกข้างของเส้นโดยมีจุดปลายหนึ่งและจุดกึ่งกลางด้วย C++


ในปัญหานี้ เราได้รับพิกัดของสองจุดของเส้น จุดเริ่มต้น A(xA, yA) และจุดกึ่งกลาง M(xM, yM) ภารกิจของเราคือ หาจุดปลายอีกข้างของเส้นโดยมีจุดปลายหนึ่งและจุดกึ่งกลาง

มาดูตัวอย่างเพื่อเข้าใจปัญหา

อินพุต

A = [1, 2], M = [3, 0]

เอาต์พุต

[5, -2]

คำอธิบาย

เส้นคือ -

หาจุดปลายอีกข้างของเส้นโดยมีจุดปลายหนึ่งและจุดกึ่งกลางด้วย C++

วิธีการแก้ปัญหา

เพื่อแก้ปัญหานี้ เราจะใช้แนวคิดทางเรขาคณิตที่เราเรียนในคณิตศาสตร์ หากคุณจำได้ มีสูตรจุดกึ่งกลางสำหรับทุกเส้น ซึ่งคือ

mid(x) = (x1 + x2) / 2 mid(y) = (y1 + y2) / 2

แต่เราได้รับค่าจุดกึ่งกลางในโจทย์และต้องการค่า x2 และ y2 ดังนั้น เราจะเปลี่ยนสูตรตามนั้น

x2 = 2*mid(x) - x1 y2 = 2*mid(y) - y1

ใช้สูตรด้านบน เราสามารถหาค่าจุดปลายอีกข้างโดยใช้จุดกึ่งกลางและจุดหนึ่งของเส้น

ตัวอย่าง

โปรแกรมสาธิตการทำงานของวิธีแก้ปัญหาของเรา

 #include <iostream> using namespace std; void findMissingPointLine(float x1, float y1, float xm, float ym){    float x2 = (2 * xm) - x1;    float y2 = (2 * ym) - y1;    cout<<"B(x, y) = "<<"( "<<x2<<", "<<y2<<" )"; } int main() {    float x1 = -4, y1 = -1, xm = 3, ym = 5;    cout<<"The other end point of the line is \n";    findMissingPointLine(x1, y1, xm, ym);    return 0; }

เอาต์พุต

The other end point of the line is B(x, y) = ( 10, 11 )