在 C++ 中找到平行四边形所有可能的坐标


找出给定三个坐标的所有可能坐标,以制作一个非零面积的平行四边形。假设 A、B、C 是给定的三点,我们只有三种可能的情况。

  • AB、AC 是边,BC 是对角线
  • AB、BC 是边,AC 是对角线
  • BC、AC 是边,AB 是对角线

因此,我们可以说只有三个坐标是可能的,根据这三个坐标,我们可以生成一个平行四边形,如果给定了三个坐标。由于相反的边相等,则 AD = BC,AB = CD,我们将会像下面那样计算丢失的点 D 的坐标 -

(Dx-Ax,Dy-Ay) = (Cx-Bx,Cy-By)
Dx = Ax+Cx-Bx
Dy = Ay+Cy-By

范例

#include<iostream>
using namespace std;
void printPoints(int ax, int ay, int bx, int by, int cx, int cy){
   cout << ax + bx - cx << ", " << ay + by - cy <<endl;
   cout << ax + cx - bx << ", " << ay + cy - by <<endl;
   cout << cx + bx - ax << ", " << cy + by - ax <<endl;
}
int main() {
   int ax = 5, ay = 0; //coordinates of A
   int bx = 1, by = 1; //coordinates of B
   int cx = 2, cy = 5; //coordinates of C
   printPoints(ax, ay, bx, by, cx, cy);
}

输出

4, -4
6, 4
-2, 1

更新于: 2019 年 11 月 1 日

144 次浏览

启动你的 职业生涯

完成课程获得认证

开始
广告