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

โปรแกรมหาจุดศูนย์กลาง (Centroid) ของสามเหลี่ยมใน C++


ภาพรวมปัญหา

ในปัญหานี้ เราได้รับอาร์เรย์ 2 มิติที่เก็บพิกัดของจุดยอดสามจุดของสามเหลี่ยม งานของเราคือการสร้างโปรแกรมหาจุดศูนย์กลาง (Centroid) ของสามเหลี่ยมใน C++

ความรู้พื้นฐาน

จุดศูนย์กลาง (Centroid) ของสามเหลี่ยม คือ จุดที่เส้นมัธยาน (Median) สามเส้นของสามเหลี่ยมตัดกัน

เส้นมัธยาน (Median) คือ เส้นตรงที่เชื่อมจุดยอดของสามเหลี่ยมกับจุดกึ่งกลางของด้านตรงข้าม

โปรแกรมหาจุดศูนย์กลาง (Centroid) ของสามเหลี่ยมใน C++

ตัวอย่าง

Input

(-3, 1), (1.5, 0), (-3, -4)

Output

(-1.5, -1)

คำอธิบาย

Centroid (x, y) = ((-3 + 1.5 + -3)/3, (1 + 0 + -4)/3) = (-1.5, -1)

แนวทางแก้ปัญหา

ใช้สูตรเรขาคณิตสำหรับหาจุดศูนย์กลางของสามเหลี่ยม:

สำหรับจุด (ax, ay), (bx, by), (cx, cy)

Centroid x = (ax + bx + cx) / 3
y = (ay + by + cy) / 3

ตัวอย่างโปรแกรม

#include <iostream>
using namespace std;

int main() {
    float tri[3][2] = {{-3, 1}, {1.5, 0}, {-3, -4}};
    cout << "Centroid of triangle is (";
    cout << ((tri[0][0] + tri[1][0] + tri[2][0]) / 3) << " , ";
    cout << ((tri[0][1] + tri[1][1] + tri[2][1]) / 3) << ")";
    return 0;
}

Output

Centroid of triangle is (-1.5 , -1)