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

หาพื้นที่สี่เหลี่ยมขนานหมากรุกถ้าทราบเวกเตอร์สองด้านที่ติดกันด้วย C++

สมมติว่าเรามีเวกเตอร์สองตัวสำหรับสองด้านที่ติดกันของสี่เหลี่ยมขนานหมากรุก (Parallelogram) ในรูปแบบ $x\hat{i}+y\hat{j}+z\hat{k}$ ภารกิจของเราคือหาพื้นที่ของสี่เหลี่ยมขนานหมากรุก พื้นที่ของสี่เหลี่ยมขนานหมากรุกคือขนาด (Magnitude) ของผลคูณไขว้ (Cross Product) ของสองเวกเตอร์ (|A × B|)

$$|\vec{A}\times\vec{B}| = \sqrt{(y_1 z_2 - y_2 z_1)^2 + (x_1 z_2 - x_2 z_1)^2 + (x_1 y_2 - x_2 y_1)^2}$$

ตัวอย่างโค้ด

#include <iostream>
#include <cmath>
using namespace std;

float area(float A[], float B[]) {
    float area = sqrt(pow((A[1] * B[2] - B[1] * A[2]), 2) + pow((A[0] * B[2] - B[0] * A[2]), 2) + pow((A[0] * B[1] - B[0] * A[1]), 2));
    return area;
}

int main() {
    float A[] = {3, 1, -2};
    float B[] = {1, -3, 4};
    float a = area(A, B);
    cout << "Area = " << a;
}

ผลลัพธ์

Area = 17.3205