Рубрики

Длина поперечной общей касательной между двумя непересекающимися кругами

Учитывая два круга заданных радиусов, имея там центры данного расстояния друг от друга, так что круги не касаются друг друга. Задача состоит в том, чтобы найти длину поперечной общей касательной между окружностями.

Примеры:

Input: r1 = 4, r2 = 6, d = 12
Output: 6.63325

Input: r1 = 7, r2 = 9, d = 21
Output: 13.6015

Подход :

  1. Пусть радиусы окружностей равны r1 и r2 соответственно.
  2. Пусть расстояние между центрами будет d единиц.
  3. Нарисуйте линию O'R параллельно PQ,
  4. угол OPQ = угол RPQ = 90 градусов
    угол O'QP = 90 градусов
    {линия, соединяющая центр окружности с точкой соприкосновения, составляет 90 градусов с касательной}
  5. угол RPQ + угол O'QP = 180 град
    PR || O'Q
  6. Поскольку противоположные стороны параллельны, а внутренние углы равны 90, то O'PQR является прямоугольником.
  7. O'Q = RP = r2 и PQ = O'R
  8. В треугольнике OO'R

    угол ORO '= 90 град
    По теореме Пифагора
    ИЛИ ^ 2 + O'R ^ 2 = OO '^ 2
    O'R ^ 2 = OO '^ 2 — ИЛИ ^ 2
    O'R ^ 2 = d ^ 2 — (r1 + r2) ^ 2
    O'R ^ 2 = √ (d ^ 2 — (r1 + r2) ^ 2)

C ++

// C ++ программа для поиска длины
// поперечной общей касательной
// между двумя кругами, которые
// не касаемся друг друга

  
#include <bits/stdc++.h>

using namespace std;

  
// Функция для определения длины
// поперечной общей касательной

void lengthOfTangent(double r1, double r2, double d)

{

  

    cout << "The length of the transverse"

         << " common tangent is "

         << sqrt(pow(d, 2) - pow((r1 + r2), 2))

         << endl;

}

  
// Код драйвера

int main()

{

    double r1 = 4, r2 = 6, d = 12;

    lengthOfTangent(r1, r2, d);

    return 0;

}

Джава

// Java-программа для определения длины
// поперечной общей касательной
// между двумя кругами, которые
// не касаемся друг друга

class GFG {

  

    // Функция для определения длины

    // поперечной общей касательной

    static void lengthOfTangent(double r1,

                                double r2, double d)

    {

  

        System.out.println("The length of the transverse"

                           + " common tangent is "

                           + Math.sqrt(Math.pow(d, 2)

                                       - Math.pow((r1 + r2), 2)));

    }

  

    // Код драйвера

    public static void main(String args[])

    {

        double r1 = 4, r2 = 6, d = 12;

        lengthOfTangent(r1, r2, d);

    }

}

  
// Этот код предоставлен 29AjayKumar

python3

# Python 3 программа для определения длины
# поперечной общей касательной
# между двумя кругами, которые
# не касайтесь друг друга

from math import sqrt, pow

  
# Функция для определения длины
# поперечной общей касательной

def lengthOfTangent(r1, r2, d):

    print("The length of the transverse",

                     "common tangent is"

          '{0:.6g}'.format(sqrt(pow(d, 2) - 

                                pow((r1 + r2), 2))))

  
# Код драйвера

if __name__ == '__main__':

    r1 = 4

    r2 = 6

    d = 12

    lengthOfTangent(r1, r2, d)

      
# Этот код предоставлен
# Surendra_Gangwar

C #

// C # программа для поиска длины
// поперечной общей касательной
// между двумя кругами, которые
// не касаемся друг друга

using System;

  

class GFG {

    // Функция для определения длины

    // поперечной общей касательной

    static void lengthOfTangent(double r1,

                                double r2, double d)

    {

  

        Console.WriteLine("The length of the transverse"

                          + " common tangent is "

                          + Math.Sqrt(Math.Pow(d, 2)

                                      - Math.Pow((r1 + r2), 2)));

    }

  

    // Код драйвера

    static public void Main()

    {

        double r1 = 4, r2 = 6, d = 12;

        lengthOfTangent(r1, r2, d);

    }

}

  
// Этот код предоставлен ajit.

PHP

<?php
// PHP программа для определения длины
// поперечной общей касательной
// между двумя кругами, которые
// не касаемся друг друга

  
// Функция для определения длины
// поперечной общей касательной

function lengthOfTangent($r1, $r2, $d

  

    echo "The length of the transverse common tangent is ",

    sqrt(pow($d, 2) - pow(($r1 + $r2), 2)) ;

  
// Код драйвера

$r1 = 4; $r2 = 6; $d = 12; 

lengthOfTangent($r1, $r2, $d); 

  
// Этот код предоставлен AnkitRai01
?>

Выход:

The length of the transverse common tangent is 6.63325

Рекомендуемые посты:

Длина поперечной общей касательной между двумя непересекающимися кругами

0.00 (0%) 0 votes