Ympyrän säteen laskin
Johdanto
Säde on yksi ympyrän perusominaisuuksista. Se on etäisyys ympyrän keskipisteestä mihin tahansa pisteeseen sen kehällä. Tämä laskin mahdollistaa ympyrän säteen määrittämisen kolmen eri syöttöparametrin perusteella:
- Halkaisija
- Ympärysmitta
- Pinta-ala
Antamalla jonkin näistä arvoista voit laskea säteen ympyrägeometrian matemaattisten suhteiden avulla.
Kaava
Säde voidaan laskea halkaisijasta, ympärysmittasta tai pinta-alasta seuraavien kaavojen avulla:
-
Halkaisijasta ():
-
Ympärysmittasta ():
-
Pinta-alasta ():
Nämä kaavat on johdettu ympyrän perusominaisuuksista:
- Halkaisija: Halkaisija on kaksi kertaa säde ().
- Ympärysmitta: Ympärysmitta on etäisyys ympyrän ympärillä ().
- Pinta-ala: Ympyrän suljettu pinta-ala ().
Laskenta
Säteen laskeminen halkaisijasta
Annettaessa halkaisija, säde on yksinkertaisesti puolet siitä:
Esimerkki:
Jos halkaisija on 10 yksikköä:
Säteen laskeminen ympärysmittasta
Aloitetaan ympärysmittakaavasta:
Ratkaistaan :
Esimerkki:
Jos ympärysmitta on yksikköä:
Säteen laskeminen pinta-alasta
Aloitetaan pinta-alakaavasta:
Ratkaistaan :
Esimerkki:
Jos pinta-ala on neliöyksikköä:
Reunakohdat ja syöttötarkistus
-
Nolla tai negatiiviset syötteet: Ympyrällä ei voi olla negatiivista tai nollaa halkaisijaa, ympärysmittaa tai pinta-alaa. Jos jokin näistä arvoista on nolla tai negatiivinen, säde on määrittelemätön. Laskin näyttää virheilmoituksen tällaisissa tapauksissa.
-
Numeron ulkopuoliset syötteet: Laskin vaatii numeerisia syötteitä. Nonnumeriset arvot (esim. kirjaimet tai symbolit) ovat virheellisiä.
Tarkkuus ja pyöristys
Tämä laskin käyttää kaksoistarkkuuden liukulukuaritmetiikkaa laskentaan. Tulokset näytetään tyypillisesti pyöristettyinä neljään desimaaliin suuremman tarkkuuden saavuttamiseksi. Käytettäessä matemaattisia vakioita, kuten , laskin hyödyntää ohjelmointikielen tai ympäristön saatavilla olevaa täyttä tarkkuutta. Ole tietoinen siitä, että liukulukuaritmetiikka voi aiheuttaa pieniä pyöristysvirheitä joissakin tapauksissa.
Käyttötapaukset
Ympyrän säteen laskeminen on olennaista eri aloilla:
Insinööritiede ja rakentaminen
-
Pyöreiden komponenttien suunnittelu: Insinöörit tarvitsevat usein säteen määrittämistä suunnitellessaan renkaita, vaihteita, putkia tai kupoleita.
-
Arkkitehtuuri: Arkkitehdit käyttävät sädettä suunnitellessaan holveja, kupoleita ja pyöreitä rakennuksia.
Astronomia
-
Planeettojen radat: Astronomit laskevat planeettojen ratojen säteen havaintotietojen perusteella.
-
Taivaankappaleet: Määritetään planeettojen, tähtien ja muiden taivaankappaleiden kokoja.
Arkielämän ongelmanratkaisu
-
Taide ja suunnittelu: Taiteilijat ja suunnittelijat laskevat säteen luodakseen pyöreitä kuvioita ja malleja.
-
DIY-projektit: Materiaalien laskeminen pyöreille pöydille, puutarhoille tai suihkulähteille.
Matematiikka ja koulutus
-
Geometrian oppiminen: Ympyröiden ominaisuuksien ymmärtäminen on perusasia geometrian opetuksessa.
-
Ongelmien ratkaiseminen: Säteen laskeminen on yleistä matemaattisissa ongelmissa ja kilpailuissa.
Vaihtoehdot
Vaikka säde on ensisijainen ominaisuus, joskus muut ympyrän ominaisuudet ovat kätevämpiä mitata suoraan:
-
Kaaren pituuden mittaaminen: Hyödyllinen, kun sinulla on kiinteät pisteet ympyrässä ja tarvitset säteen laskemista.
-
Sekoitusalueen tai kaaren pituuden käyttäminen: Tapauksissa, joissa on osittaisia ympyrän osia.
Historia
Ympyröiden tutkimus juontaa juurensa muinaisiin sivilisaatioihin:
-
Muinaiset geometriat: Ympyrää on tutkittu muinaisten egyptiläisten ja babylonialaisten ajoista lähtien.
-
Eucliduksen elementit: Noin 300 eKr. Euclid määritteli ympyrän ja sen ominaisuudet merkittävässä teoksessaan Elementit.
-
Arkhimedes: Tarjosi menetelmiä (\pi):n arvioimiseksi ja laski alueita ja tilavuuksia, jotka liittyvät ympyröihin ja palloihin.
-
(\pi):n kehitys: Vuosisatojen aikana matemaatikot, kuten Liu Hui, Zu Chongzhi, Aryabhata, ja lopulta John Wallis ja Isaac Newton, tarkensivat (\pi):n arvoa ja ymmärrystä.
Säde on edelleen peruskäsite, ei vain geometriassa, vaan myös fysiikassa, insinööritieteessä ja eri sovelletuissa tieteissä.
Esimerkit
Tässä on koodiesimerkkejä useilla ohjelmointikielillä säteen laskemiseksi halkaisijasta, ympärysmittasta ja pinta-alasta.
Halkaisijasta
Python
## Laske säde halkaisijasta
def radius_from_diameter(diameter):
if diameter <= 0:
raise ValueError("Halkaisijan on oltava suurempi kuin nolla.")
return diameter / 2
## Esimerkin käyttö
d = 10
r = radius_from_diameter(d)
print(f"Säde on {r} yksikköä.")
JavaScript
// Laske säde halkaisijasta
function radiusFromDiameter(diameter) {
if (diameter <= 0) {
throw new Error("Halkaisijan on oltava suurempi kuin nolla.");
}
return diameter / 2;
}
// Esimerkin käyttö
let d = 10;
let r = radiusFromDiameter(d);
console.log(`Säde on ${r} yksikköä.`);
Java
public class CircleRadiusCalculator {
public static double radiusFromDiameter(double diameter) {
if (diameter <= 0) {
throw new IllegalArgumentException("Halkaisijan on oltava suurempi kuin nolla.");
}
return diameter / 2;
}
public static void main(String[] args) {
double d = 10;
double r = radiusFromDiameter(d);
System.out.printf("Säde on %.2f yksikköä.%n", r);
}
}
C++
// Laske säde halkaisijasta
#include <iostream>
#include <stdexcept>
double radiusFromDiameter(double diameter) {
if (diameter <= 0) {
throw std::invalid_argument("Halkaisijan on oltava suurempi kuin nolla.");
}
return diameter / 2.0;
}
int main() {
double d = 10.0;
try {
double r = radiusFromDiameter(d);
std::cout << "Säde on " << r << " yksikköä." << std::endl;
} catch (const std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
R
## Laske säde halkaisijasta
radius_from_diameter <- function(diameter) {
if (diameter <= 0) {
stop("Halkaisijan on oltava suurempi kuin nolla.")
}
return(diameter / 2)
}
## Esimerkin käyttö
d <- 10
r <- radius_from_diameter(d)
cat(sprintf("Säde on %.2f yksikköä.\n", r))
Ruby
## Laske säde halkaisijasta
def radius_from_diameter(diameter)
raise ArgumentError, "Halkaisijan on oltava suurempi kuin nolla." if diameter <= 0
diameter / 2.0
end
## Esimerkin käyttö
d = 10
r = radius_from_diameter(d)
puts "Säde on #{r} yksikköä."
PHP
<?php
// Laske säde halkaisijasta
function radiusFromDiameter($diameter) {
if ($diameter <= 0) {
throw new Exception('Halkaisijan on oltava suurempi kuin nolla.');
}
return $diameter / 2;
}
// Esimerkin käyttö
$d = 10;
$r = radiusFromDiameter($d);
echo "Säde on {$r} yksikköä.";
?>
Rust
// Laske säde halkaisijasta
fn radius_from_diameter(diameter: f64) -> Result<f64, &'static str> {
if diameter <= 0.0 {
return Err("Halkaisijan on oltava suurempi kuin nolla.");
}
Ok(diameter / 2.0)
}
fn main() {
let d = 10.0;
match radius_from_diameter(d) {
Ok(r) => println!("Säde on {:.2} yksikköä.", r),
Err(e) => println!("{}", e),
}
}
Swift
import Foundation
// Laske säde halkaisijasta
func radiusFromDiameter(_ diameter: Double) throws -> Double {
if diameter <= 0 {
throw NSError(domain: "InvalidInput", code: 0, userInfo: [NSLocalizedDescriptionKey: "Halkaisijan on oltava suurempi kuin nolla."])
}
return diameter / 2.0
}
// Esimerkin käyttö
do {
let d = 10.0
let r = try radiusFromDiameter(d)
print("Säde on \(r) yksikköä.")
} catch {
print(error.localizedDescription)
}
Ympärysmittasta
Python
import math
## Laske säde ympärysmittasta
def radius_from_circumference(circumference):
if circumference <= 0:
raise ValueError("Ympärysmitan on oltava suurempi kuin nolla.")
return circumference / (2 * math.pi)
## Esimerkin käyttö
C = 31.4159
r = radius_from_circumference(C)
print(f"Säde on {r:.2f} yksikköä.")
JavaScript
// Laske säde ympärysmittasta
function radiusFromCircumference(circumference) {
if (circumference <= 0) {
throw new Error("Ympärysmitan on oltava suurempi kuin nolla.");
}
return circumference / (2 * Math.PI);
}
// Esimerkin käyttö
let C = 31.4159;
let r = radiusFromCircumference(C);
console.log(`Säde on ${r.toFixed(2)} yksikköä.`);
Java
public class CircleRadiusCalculator {
public static double radiusFromCircumference(double circumference) {
if (circumference <= 0) {
throw new IllegalArgumentException("Ympärysmitan on oltava suurempi kuin nolla.");
}
return circumference / (2 * Math.PI);
}
public static void main(String[] args) {
double C = 31.4159;
double r = radiusFromCircumference(C);
System.out.printf("Säde on %.2f yksikköä.%n", r);
}
}
C++
// Laske säde ympärysmittasta
#include <iostream>
#include <cmath>
#include <stdexcept>
double radiusFromCircumference(double circumference) {
if (circumference <= 0) {
throw std::invalid_argument("Ympärysmitan on oltava suurempi kuin nolla.");
}
return circumference / (2.0 * M_PI);
}
int main() {
double C = 31.4159;
try {
double r = radiusFromCircumference(C);
std::cout << "Säde on " << r << " yksikköä." << std::endl;
} catch (const std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
R
## Laske säde ympärysmittasta
radius_from_circumference <- function(circumference) {
if (circumference <= 0) {
stop("Ympärysmitan on oltava suurempi kuin nolla.")
}
return(circumference / (2 * pi))
}
## Esimerkin käyttö
C <- 31.4159
r <- radius_from_circumference(C)
cat(sprintf("Säde on %.2f yksikköä.\n", r))
Ruby
## Laske säde ympärysmittasta
def radius_from_circumference(circumference)
raise ArgumentError, "Ympärysmitan on oltava suurempi kuin nolla." if circumference <= 0
circumference / (2 * Math::PI)
end
## Esimerkin käyttö
C = 31.4159
r = radius_from_circumference(C)
puts "Säde on #{format('%.2f', r)} yksikköä."
PHP
<?php
// Laske säde ympärysmittasta
function radiusFromCircumference($circumference) {
if ($circumference <= 0) {
throw new Exception('Ympärysmitan on oltava suurempi kuin nolla.');
}
return $circumference / (2 * M_PI);
}
// Esimerkin käyttö
$C = 31.4159;
$r = radiusFromCircumference($C);
echo "Säde on " . round($r, 2) . " yksikköä.";
?>
Rust
use std::f64::consts::PI;
// Laske säde ympärysmittasta
fn radius_from_circumference(circumference: f64) -> Result<f64, &'static str> {
if circumference <= 0.0 {
return Err("Ympärysmitan on oltava suurempi kuin nolla.");
}
Ok(circumference / (2.0 * PI))
}
fn main() {
let C = 31.4159;
match radius_from_circumference(C) {
Ok(r) => println!("Säde on {:.2} yksikköä.", r),
Err(e) => println!("{}", e),
}
}
Swift
import Foundation
// Laske säde ympärysmittasta
func radiusFromCircumference(_ circumference: Double) throws -> Double {
if circumference <= 0 {
throw NSError(domain: "InvalidInput", code: 0, userInfo: [NSLocalizedDescriptionKey: "Ympärysmitan on oltava suurempi kuin nolla."])
}
return circumference / (2 * Double.pi)
}
// Esimerkin käyttö
do {
let C = 31.4159
let r = try radiusFromCircumference(C)
print(String(format: "Säde on %.2f yksikköä.", r))
} catch {
print(error.localizedDescription)
}
Pinta-alasta
Python
import math
## Laske säde pinta-alasta
def radius_from_area(area):
if area <= 0:
raise ValueError("Pinta-alan on oltava suurempi kuin nolla.")
return math.sqrt(area / math.pi)
## Esimerkin käyttö
A = 78.5398
r = radius_from_area(A)
print(f"Säde on {r:.2f} yksikköä.")
JavaScript
// Laske säde pinta-alasta
function radiusFromArea(area) {
if (area <= 0) {
throw new Error("Pinta-alan on oltava suurempi kuin nolla.");
}
return Math.sqrt(area / Math.PI);
}
// Esimerkin käyttö
let A = 78.5398;
let r = radiusFromArea(A);
console.log(`Säde on ${r.toFixed(2)} yksikköä.`);
Java
public class CircleRadiusCalculator {
public static double radiusFromArea(double area) {
if (area <= 0) {
throw new IllegalArgumentException("Pinta-alan on oltava suurempi kuin nolla.");
}
return Math.sqrt(area / Math.PI);
}
public static void main(String[] args) {
double A = 78.5398;
double r = radiusFromArea(A);
System.out.printf("Säde on %.2f yksikköä.%n", r);
}
}
C++
// Laske säde pinta-alasta
#include <iostream>
#include <cmath>
#include <stdexcept>
double radiusFromArea(double area) {
if (area <= 0) {
throw std::invalid_argument("Pinta-alan on oltava suurempi kuin nolla.");
}
return std::sqrt(area / M_PI);
}
int main() {
double A = 78.5398;
try {
double r = radiusFromArea(A);
std::cout << "Säde on " << r << " yksikköä." << std::endl;
} catch (const std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
R
## Laske säde pinta-alasta
radius_from_area <- function(area) {
if (area <= 0) {
stop("Pinta-alan on oltava suurempi kuin nolla.")
}
return(sqrt(area / pi))
}
## Esimerkin käyttö
A <- 78.5398
r <- radius_from_area(A)
cat(sprintf("Säde on %.2f yksikköä.\n", r))
MATLAB
% Laske säde pinta-alasta
function r = radius_from_area(area)
if area <= 0
error('Pinta-alan on oltava suurempi kuin nolla.');
end
r = sqrt(area / pi);
end
% Esimerkin käyttö
A = 78.5398;
r = radius_from_area(A);
fprintf('Säde on %.2f yksikköä.\n', r);
C#
using System;
class CircleRadiusCalculator
{
public static double RadiusFromArea(double area)
{
if (area <= 0)
throw new ArgumentException("Pinta-alan on oltava suurempi kuin nolla.");
return Math.Sqrt(area / Math.PI);
}
static void Main()
{
double A = 78.5398;
double r = RadiusFromArea(A);
Console.WriteLine("Säde on {0:F2} yksikköä.", r);
}
}
Go
package main
import (
"fmt"
"math"
)
func radiusFromArea(area float64) (float64, error) {
if area <= 0 {
return 0, fmt.Errorf("Pinta-alan on oltava suurempi kuin nolla.")
}
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("Säde on %.2f yksikköä.\n", r)
}
Ruby
## Laske säde pinta-alasta
def radius_from_area(area)
raise ArgumentError, "Pinta-alan on oltava suurempi kuin nolla." if area <= 0
Math.sqrt(area / Math::PI)
end
## Esimerkin käyttö
A = 78.5398
r = radius_from_area(A)
puts "Säde on #{format('%.2f', r)} yksikköä."
PHP
<?php
// Laske säde pinta-alasta
function radiusFromArea($area) {
if ($area <= 0) {
throw new Exception('Pinta-alan on oltava suurempi kuin nolla.');
}
return sqrt($area / M_PI);
}
// Esimerkin käyttö
$A = 78.5398;
$r = radiusFromArea($A);
echo "Säde on " . round($r, 2) . " yksikköä.";
?>
Rust
use std::f64::consts::PI;
// Laske säde pinta-alasta
fn radius_from_area(area: f64) -> Result<f64, &'static str> {
if area <= 0.0 {
return Err("Pinta-alan on oltava suurempi kuin nolla.");
}
Ok((area / PI).sqrt())
}
fn main() {
let A = 78.5398;
match radius_from_area(A) {
Ok(r) => println!("Säde on {:.2} yksikköä.", r),
Err(e) => println!("{}", e),
}
}
Swift
import Foundation
// Laske säde pinta-alasta
func radiusFromArea(_ area: Double) throws -> Double {
if area <= 0 {
throw NSError(domain: "InvalidInput", code: 0, userInfo: [NSLocalizedDescriptionKey: "Pinta-alan on oltava suurempi kuin nolla."])
}
return sqrt(area / Double.pi)
}
// Esimerkin käyttö
do {
let A = 78.5398
let r = try radiusFromArea(A)
print(String(format: "Säde on %.2f yksikköä.", r))
} catch {
print(error.localizedDescription)
}
Excel
## Laske säde halkaisijasta solussa B1
=IF(B1>0, B1/2, "Virheellinen syöte")
## Laske säde ympärysmittasta solussa B2
=IF(B2>0, B2/(2*PI()), "Virheellinen syöte")
## Laske säde pinta-alasta solussa B3
=IF(B3>0, SQRT(B3/PI()), "Virheellinen syöte")
Visualisointi
SVG-diagrammi, joka havainnollistaa säteen, halkaisijan ja ympärysmitan välistä suhdetta:
Viitteet
- Ympyrä - Wikipedia
- Ympärysmitta - Math Is Fun
- Ympyrän pinta-ala - Khan Academy
- (\pi):n historia - Wikipedia