Whiz Tools

円の半径計算機

はじめに

円の半径は、その最も基本的な特性の一つです。円の中心から円周上の任意の点までの距離です。この計算機を使用すると、3つの異なる入力パラメータに基づいて円の半径を求めることができます。

  1. 直径
  2. 円周
  3. 面積

これらの値のいずれかを提供することで、円の幾何学に内在する数学的関係を使用して半径を計算できます。

公式

半径は、直径、円周、または面積から次の公式を使用して計算できます。

  1. 直径から (dd):

    r=d2r = \frac{d}{2}
  2. 円周から (CC):

    r=C2πr = \frac{C}{2\pi}
  3. 面積から (AA):

    r=Aπr = \sqrt{\frac{A}{\pi}}

これらの公式は、円の基本的な特性から導かれます。

  • 直径: 直径は半径の2倍です (d=2rd = 2r)。
  • 円周: 円周は円の周りの距離です (C=2πrC = 2\pi r)。
  • 面積: 円の内部に囲まれた面積です (A=πr2A = \pi r^2)。

計算

直径からの半径の計算

直径が与えられた場合、半径は単にその半分です。

r=d2r = \frac{d}{2}

:

直径が10単位の場合:

r=102=5 単位r = \frac{10}{2} = 5 \text{ 単位}

円周からの半径の計算

円周の公式から始めます:

C=2πrC = 2\pi r

rrについて解くと:

r=C2πr = \frac{C}{2\pi}

:

円周が31.415931.4159単位の場合:

r=31.41592π31.41596.28325 単位r = \frac{31.4159}{2\pi} \approx \frac{31.4159}{6.2832} \approx 5 \text{ 単位}

面積からの半径の計算

面積の公式から始めます:

A=πr2A = \pi r^2

rrについて解くと:

r=Aπr = \sqrt{\frac{A}{\pi}}

:

面積が78.539878.5398平方単位の場合:

r=78.5398π=78.53983.141625=5 単位r = \sqrt{\frac{78.5398}{\pi}} = \sqrt{\frac{78.5398}{3.1416}} \approx \sqrt{25} = 5 \text{ 単位}

エッジケースと入力検証

  • ゼロまたは負の入力: 円は負またはゼロの直径、円周、または面積を持つことができません。これらの値のいずれかがゼロまたは負の場合、半径は未定義です。その場合、計算機はエラーメッセージを表示します。

  • 非数値入力: 計算機は数値入力を必要とします。非数値の値(例:文字や記号)は無効です。

精度と丸め

この計算機は、計算に二重精度浮動小数点演算を使用します。結果は通常、より高い精度のために4桁に丸めて表示されます。π\piのような数学的定数を使用する場合、計算機はプログラミング言語または環境で利用可能な全精度を利用します。浮動小数点演算は、場合によっては小さな丸め誤差を引き起こす可能性があることに注意してください。

使用例

円の半径を計算することは、さまざまな分野で重要です。

工学と建設

  • 円形部品の設計: エンジニアは、車輪、歯車、パイプ、ドームなどを設計する際に半径を求める必要があります。

  • 建築: 建築家は、アーチ、ドーム、円形の建物を設計するために半径を使用します。

天文学

  • 惑星の軌道: 天文学者は観測データに基づいて惑星の軌道の半径を計算します。

  • 天体: 惑星、星、その他の天体のサイズを決定します。

日常の問題解決

  • アートとデザイン: アーティストやデザイナーは、円形のパターンやデザインを作成するために半径を計算します。

  • DIYプロジェクト: 円形のテーブル、庭、噴水に必要な材料を計算します。

数学と教育

  • 幾何学の学習: 円の特性を理解することは、幾何学教育において基本的です。

  • 問題解決: 半径の計算は、数学の問題や競技で一般的です。

代替手段

半径は主要な特性ですが、場合によっては他の円の特性を直接測定する方が便利です。

  • 弦の長さを測定する: 固定された点が円にある場合、半径を計算するのに役立ちます。

  • 扇形の面積や弧の長さを使用する: 円の部分的なセクションに関与する場合。

歴史

円の研究は古代文明にさかのぼります。

  • 古代の幾何学: 円は古代エジプト人やバビロニア人の時代から研究されてきました。

  • ユークリッドの原論: 紀元前300年頃、ユークリッドは彼の重要な著作『原論』で円とその特性を定義しました。

  • アルキメデス: π\piを近似する方法を提供し、円や球に関連する面積や体積を計算しました。

  • π\piの発展: 数世代にわたり、劉徽、祖沖之、アーリヤバタ、最終的にはジョン・ウォリスやアイザック・ニュートンなどの数学者がπ\piの値と理解を洗練しました。

半径は、幾何学だけでなく、物理学、工学、さまざまな応用科学においても基本的な概念であり続けています。

直径、円周、面積から半径を計算するための複数のプログラミング言語でのコード例を以下に示します。

直径から

Python
## 直径から半径を計算する
def radius_from_diameter(diameter):
    if diameter <= 0:
        raise ValueError("直径はゼロより大きくなければなりません。")
    return diameter / 2

## 使用例
d = 10
r = radius_from_diameter(d)
print(f"半径は {r} 単位です。")
JavaScript
// 直径から半径を計算する
function radiusFromDiameter(diameter) {
    if (diameter <= 0) {
        throw new Error("直径はゼロより大きくなければなりません。");
    }
    return diameter / 2;
}

// 使用例
let d = 10;
let r = radiusFromDiameter(d);
console.log(`半径は ${r} 単位です。`);
Java
public class CircleRadiusCalculator {
    public static double radiusFromDiameter(double diameter) {
        if (diameter <= 0) {
            throw new IllegalArgumentException("直径はゼロより大きくなければなりません。");
        }
        return diameter / 2;
    }

    public static void main(String[] args) {
        double d = 10;
        double r = radiusFromDiameter(d);
        System.out.printf("半径は %.2f 単位です。%n", r);
    }
}
C++
// 直径から半径を計算する
#include <iostream>
#include <stdexcept>

double radiusFromDiameter(double diameter) {
    if (diameter <= 0) {
        throw std::invalid_argument("直径はゼロより大きくなければなりません。");
    }
    return diameter / 2.0;
}

int main() {
    double d = 10.0;
    try {
        double r = radiusFromDiameter(d);
        std::cout << "半径は " << r << " 単位です。" << std::endl;
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }
    return 0;
}
R
## 直径から半径を計算する
radius_from_diameter <- function(diameter) {
  if (diameter <= 0) {
    stop("直径はゼロより大きくなければなりません。")
  }
  return(diameter / 2)
}

## 使用例
d <- 10
r <- radius_from_diameter(d)
cat(sprintf("半径は %.2f 単位です。\n", r))
Ruby
## 直径から半径を計算する
def radius_from_diameter(diameter)
  raise ArgumentError, "直径はゼロより大きくなければなりません。" if diameter <= 0
  diameter / 2.0
end

## 使用例
d = 10
r = radius_from_diameter(d)
puts "半径は #{r} 単位です。"
PHP
<?php
// 直径から半径を計算する
function radiusFromDiameter($diameter) {
    if ($diameter <= 0) {
        throw new Exception('直径はゼロより大きくなければなりません。');
    }
    return $diameter / 2;
}

// 使用例
$d = 10;
$r = radiusFromDiameter($d);
echo "半径は {$r} 単位です。";
?>
Rust
// 直径から半径を計算する
fn radius_from_diameter(diameter: f64) -> Result<f64, &'static str> {
    if diameter <= 0.0 {
        return Err("直径はゼロより大きくなければなりません。");
    }
    Ok(diameter / 2.0)
}

fn main() {
    let d = 10.0;
    match radius_from_diameter(d) {
        Ok(r) => println!("半径は {:.2} 単位です。", r),
        Err(e) => println!("{}", e),
    }
}
Swift
import Foundation

// 直径から半径を計算する
func radiusFromDiameter(_ diameter: Double) throws -> Double {
    if diameter <= 0 {
        throw NSError(domain: "InvalidInput", code: 0, userInfo: [NSLocalizedDescriptionKey: "直径はゼロより大きくなければなりません。"])
    }
    return diameter / 2.0
}

// 使用例
do {
    let d = 10.0
    let r = try radiusFromDiameter(d)
    print("半径は \(r) 単位です。")
} catch {
    print(error.localizedDescription)
}

円周から

Python
import math

## 円周から半径を計算する
def radius_from_circumference(circumference):
    if circumference <= 0:
        raise ValueError("円周はゼロより大きくなければなりません。")
    return circumference / (2 * math.pi)

## 使用例
C = 31.4159
r = radius_from_circumference(C)
print(f"半径は {r:.2f} 単位です。")
JavaScript
// 円周から半径を計算する
function radiusFromCircumference(circumference) {
    if (circumference <= 0) {
        throw new Error("円周はゼロより大きくなければなりません。");
    }
    return circumference / (2 * Math.PI);
}

// 使用例
let C = 31.4159;
let r = radiusFromCircumference(C);
console.log(`半径は ${r.toFixed(2)} 単位です。`);
Java
public class CircleRadiusCalculator {
    public static double radiusFromCircumference(double circumference) {
        if (circumference <= 0) {
            throw new IllegalArgumentException("円周はゼロより大きくなければなりません。");
        }
        return circumference / (2 * Math.PI);
    }

    public static void main(String[] args) {
        double C = 31.4159;
        double r = radiusFromCircumference(C);
        System.out.printf("半径は %.2f 単位です。%n", r);
    }
}
C++
// 円周から半径を計算する
#include <iostream>
#include <cmath>
#include <stdexcept>

double radiusFromCircumference(double circumference) {
    if (circumference <= 0) {
        throw std::invalid_argument("円周はゼロより大きくなければなりません。");
    }
    return circumference / (2.0 * M_PI);
}

int main() {
    double C = 31.4159;
    try {
        double r = radiusFromCircumference(C);
        std::cout << "半径は " << r << " 単位です。" << std::endl;
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }
    return 0;
}
R
## 円周から半径を計算する
radius_from_circumference <- function(circumference) {
  if (circumference <= 0) {
    stop("円周はゼロより大きくなければなりません。")
  }
  return(circumference / (2 * pi))
}

## 使用例
C <- 31.4159
r <- radius_from_circumference(C)
cat(sprintf("半径は %.2f 単位です。\n", r))
Ruby
## 円周から半径を計算する
def radius_from_circumference(circumference)
  raise ArgumentError, "円周はゼロより大きくなければなりません。" if circumference <= 0
  circumference / (2 * Math::PI)
end

## 使用例
C = 31.4159
r = radius_from_circumference(C)
puts "半径は #{format('%.2f', r)} 単位です。"
PHP
<?php
// 円周から半径を計算する
function radiusFromCircumference($circumference) {
    if ($circumference <= 0) {
        throw new Exception('円周はゼロより大きくなければなりません。');
    }
    return $circumference / (2 * M_PI);
}

// 使用例
$C = 31.4159;
$r = radiusFromCircumference($C);
echo "半径は " . round($r, 2) . " 単位です。";
?>
Rust
use std::f64::consts::PI;

// 円周から半径を計算する
fn radius_from_circumference(circumference: f64) -> Result<f64, &'static str> {
    if circumference <= 0.0 {
        return Err("円周はゼロより大きくなければなりません。");
    }
    Ok(circumference / (2.0 * PI))
}

fn main() {
    let C = 31.4159;
    match radius_from_circumference(C) {
        Ok(r) => println!("半径は {:.2} 単位です。", r),
        Err(e) => println!("{}", e),
    }
}
Swift
import Foundation

// 円周から半径を計算する
func radiusFromCircumference(_ circumference: Double) throws -> Double {
    if circumference <= 0 {
        throw NSError(domain: "InvalidInput", code: 0, userInfo: [NSLocalizedDescriptionKey: "円周はゼロより大きくなければなりません。"])
    }
    return circumference / (2 * Double.pi)
}

// 使用例
do {
    let C = 31.4159
    let r = try radiusFromCircumference(C)
    print(String(format: "半径は %.2f 単位です。", r))
} catch {
    print(error.localizedDescription)
}

面積から

Python
import math

## 面積から半径を計算する
def radius_from_area(area):
    if area <= 0:
        raise ValueError("面積はゼロより大きくなければなりません。")
    return math.sqrt(area / math.pi)

## 使用例
A = 78.5398
r = radius_from_area(A)
print(f"半径は {r:.2f} 単位です。")
JavaScript
// 面積から半径を計算する
function radiusFromArea(area) {
    if (area <= 0) {
        throw new Error("面積はゼロより大きくなければなりません。");
    }
    return Math.sqrt(area / Math.PI);
}

// 使用例
let A = 78.5398;
let r = radiusFromArea(A);
console.log(`半径は ${r.toFixed(2)} 単位です。`);
Java
public class CircleRadiusCalculator {
    public static double radiusFromArea(double area) {
        if (area <= 0) {
            throw new IllegalArgumentException("面積はゼロより大きくなければなりません。");
        }
        return Math.sqrt(area / Math.PI);
    }

    public static void main(String[] args) {
        double A = 78.5398;
        double r = radiusFromArea(A);
        System.out.printf("半径は %.2f 単位です。%n", r);
    }
}
C++
// 面積から半径を計算する
#include <iostream>
#include <cmath>
#include <stdexcept>

double radiusFromArea(double area) {
    if (area <= 0) {
        throw std::invalid_argument("面積はゼロより大きくなければなりません。");
    }
    return std::sqrt(area / M_PI);
}

int main() {
    double A = 78.5398;
    try {
        double r = radiusFromArea(A);
        std::cout << "半径は " << r << " 単位です。" << std::endl;
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }
    return 0;
}
R
## 面積から半径を計算する
radius_from_area <- function(area) {
  if (area <= 0) {
    stop("面積はゼロより大きくなければなりません。")
  }
  return(sqrt(area / pi))
}

## 使用例
A <- 78.5398
r <- radius_from_area(A)
cat(sprintf("半径は %.2f 単位です。\n", r))
MATLAB
% 面積から半径を計算する
function r = radius_from_area(area)
    if area <= 0
        error('面積はゼロより大きくなければなりません。');
    end
    r = sqrt(area / pi);
end

% 使用例
A = 78.5398;
r = radius_from_area(A);
fprintf('半径は %.2f 単位です。\n', r);
C#
using System;

class CircleRadiusCalculator
{
    public static double RadiusFromArea(double area)
    {
        if (area <= 0)
            throw new ArgumentException("面積はゼロより大きくなければなりません。");
        return Math.Sqrt(area / Math.PI);
    }

    static void Main()
    {
        double A = 78.5398;
        double r = RadiusFromArea(A);
        Console.WriteLine("半径は {0:F2} 単位です。", r);
    }
}
Go
package main

import (
	"fmt"
	"math"
)

func radiusFromArea(area float64) (float64, error) {
	if area <= 0 {
		return 0, fmt.Errorf("面積はゼロより大きくなければなりません。")
	}
	return math.Sqrt(area / math.Pi), nil
}

func main() {
	A := 78.5398
	r, err := radiusFromArea(A)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Printf("半径は %.2f 単位です。\n", r)
}
Ruby
## 面積から半径を計算する
def radius_from_area(area)
  raise ArgumentError, "面積はゼロより大きくなければなりません。" if area <= 0
  Math.sqrt(area / Math::PI)
end

## 使用例
A = 78.5398
r = radius_from_area(A)
puts "半径は #{format('%.2f', r)} 単位です。"
PHP
<?php
// 面積から半径を計算する
function radiusFromArea($area) {
    if ($area <= 0) {
        throw new Exception('面積はゼロより大きくなければなりません。');
    }
    return sqrt($area / M_PI);
}

// 使用例
$A = 78.5398;
$r = radiusFromArea($A);
echo "半径は " . round($r, 2) . " 単位です。";
?>
Rust
use std::f64::consts::PI;

// 面積から半径を計算する
fn radius_from_area(area: f64) -> Result<f64, &'static str> {
    if area <= 0.0 {
        return Err("面積はゼロより大きくなければなりません。");
    }
    Ok((area / PI).sqrt())
}

fn main() {
    let A = 78.5398;
    match radius_from_area(A) {
        Ok(r) => println!("半径は {:.2} 単位です。", r),
        Err(e) => println!("{}", e),
    }
}
Swift
import Foundation

// 面積から半径を計算する
func radiusFromArea(_ area: Double) throws -> Double {
    if area <= 0 {
        throw NSError(domain: "InvalidInput", code: 0, userInfo: [NSLocalizedDescriptionKey: "面積はゼロより大きくなければなりません。"])
    }
    return sqrt(area / Double.pi)
}

// 使用例
do {
    let A = 78.5398
    let r = try radiusFromArea(A)
    print(String(format: "半径は %.2f 単位です。", r))
} catch {
    print(error.localizedDescription)
}

Excel

## セル B1 における直径から半径の計算
=IF(B1>0, B1/2, "無効な入力")

## セル B2 における円周から半径の計算
=IF(B2>0, B2/(2*PI()), "無効な入力")

## セル B3 における面積から半径の計算
=IF(B3>0, SQRT(B3/PI()), "無効な入力")

可視化

半径、直径、円周の関係を示すSVG図:

半径 (r) 直径 (d) 円周 (C)

参考文献

  1. - Wikipedia
  2. 円周 - Math Is Fun
  3. 円の面積 - Khan Academy
  4. π\piの歴史 - Wikipedia
Feedback