C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++を使用して、指定された一方の端と中間の線のもう一方の端点を見つけます


この問題では、線の始点A(x A の2点の座標が与えられます。 、y A )および中点M(x M 、y M )。私たちのタスクは、指定された一方の端と中央にある線のもう一方の端点を見つけることです。 。

問題を理解するために例を見てみましょう

入力

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

上記の式を使用すると、線の中点と1つの点を使用して他の端点の値を見つけることができます。

ソリューションの動作を説明するプログラム

#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 )

  1. C++を使用してサッカーの五角形と六角形の数を見つける

    ご存知のように、五角形と六角形はサッカーの重要な部分です。これらの形状は、完全な球形を形成するためのパズルのように組み合わされます。ですから、ここにサッカーがあり、六角形と五角形を見つける必要があります。 問題を簡単に解決するためにオイラー標数を使用します。オイラー標数は、位相空間の特定の形状または構造を記述するために機能する数値です。したがって、サッカーの五角形と六角形の数を計算するために使用できます。 オイラー標数- chi(S) −比表面積Sの整数 F −顔 G −グラフ V −頂点 E −エッジはSに埋め込まれています。 V - E + F

  2. 線に対する点の位置を見つけるために上記のテストを適用するC++プログラム

    これは、線に対する点の位置を見つけるために、上から下へのテストを適用するC++プログラムです。平面上の任意の点t(xt、yt)について、mとnを結ぶ線Lに対するその位置は、スカラーs −を計算することによって求められます。 Y = A xt + B yt + C Y 0の場合、tは反時計回りの半平面上にあります。 Y =0の場合、tはLにあります。 アルゴリズム Begin    Take the points as input.    For generating equation of the line, generate random numb