Рубрики

Наименьшее расстояние от центра круга до хорды

Дан круг, в котором есть аккорд. Длина хорды и радиус круга приведены. Задача — найти кратчайшее расстояние от аккорда до центра.

Примеры:

Input: r = 4, d = 3 
Output: 3.7081

Input: r = 9.8, d = 7.3
Output: 9.09492

Подход :

  • Мы знаем, что отрезок, который выпадает из центра на аккорде, делит аккорд на две части. Линия — это перпендикулярная биссектриса хорды, и мы знаем, что перпендикулярное расстояние — это кратчайшее расстояние, поэтому наша задача — найти длину этого перпендикулярного биссектрисы.
  • пусть радиус круга = r
  • длина хорды = d
  • Итак, в треугольнике OBC ,

    из теоремы Пифагора ,
    OB ^ 2 + (d / 2) ^ 2 = r ^ 2
    Итак, OB = √ (r ^ 2 — d ^ 2/4)

  • Так,
  • Ниже приведена реализация вышеуказанного подхода:

    C ++

    // C ++ программа для поиска
    // кратчайшее расстояние от
    // аккорд к центру круга
    #include <bits/stdc++.h>

    using namespace std;

      
    // Функция для поиска кратчайшего расстояния

    void shortdis(double r, double d)

    {

        cout << "The shortest distance "

             << "from the chord to centre "

             << sqrt((r * r) - ((d * d) / 4))

             << endl;

    }

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

    int main()

    {

        double r = 4, d = 3;

        shortdis(r, d);

        return 0;

    }

    Джава

    // Java-программа для поиска
    // кратчайшее расстояние от
    // аккорд к центру круга

    class GFG

    {

          
    // Функция для поиска кратчайшего расстояния

    static void shortdis(double r, double d) 

        System.out.println("The shortest distance "

            + "from the chord to centre "

            + (Math.sqrt((r * r) - ((d * d) / 4)))); 

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

    public static void main(String[] args)

    {

        double r = 4, d = 3

        shortdis(r, d); 

    }
    }

      
    / * Этот код предоставлен PrinciRaj1992 * /

    python3

    # Python программа для поиска
    # кратчайшее расстояние от
    # аккорд к центру круга

      
    # Функция поиска кратчайшего расстояния

    def shortdis(r, d): 

        print("The shortest distance ",end="");

        print("from the chord to centre ",end="");

        print(((r * r) - ((d * d) / 4))**(1/2));

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

    r = 4;

    d = 3

    shortdis(r, d); 

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

    C #

    // C # программа для поиска
    // кратчайшее расстояние от
    // аккорд к центру круга

    using System;

      

    class GFG 

          

        // Функция для поиска кратчайшего расстояния

        static void shortdis(double r, double d) 

        

            Console.WriteLine("The shortest distance "

                + "from the chord to centre "

                + (Math.Sqrt((r * r) - ((d * d) / 4)))); 

        

          

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

        public static void Main() 

        

            double r = 4, d = 3; 

            shortdis(r, d); 

        

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

    PHP

    <?php

      
    // PHP программа для поиска
    // кратчайшее расстояние от
    // аккорд к центру круга

      

      
    // Функция для поиска кратчайшего расстояния

    function shortdis($r$d

        echo "The shortest distance ";

        echo "from the chord to centre ";

        echo sqrt(($r * $r) - (($d * $d) / 4));

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

        $r = 4;

        $d = 3; 

        shortdis($r, $d); 

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

      
    ?>

    Выход:

    The leshortest distance from the chord to centre 3.7081
    

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

    Наименьшее расстояние от центра круга до хорды

    0.00 (0%) 0 votes