Skip to main content

Circle

Struct Circle 

Source
pub struct Circle { /* private fields */ }
Expand description

A circle in 2D Euclidean space.

Circle stores a center point and a radius. Construction validates the radius so downstream methods can stay simple.

§Examples

use use_geometry::{Circle, Point2};

let circle = Circle::try_new(Point2::new(1.0, 2.0), 3.0)?;

assert_eq!(circle.center(), Point2::new(1.0, 2.0));
assert_eq!(circle.radius(), 3.0);
assert_eq!(circle.diameter(), 6.0);

Implementations§

Source§

impl Circle

Source

pub fn try_new(center: Point2, radius: f64) -> Result<Self, GeometryError>

Creates a circle from a center point and a finite, non-negative radius.

A radius of 0.0 is valid and represents a degenerate circle centered at center.

§Errors

Returns GeometryError::NonFiniteComponent when center contains a non-finite coordinate.

Returns GeometryError::NonFiniteRadius when radius is NaN or infinite.

Returns GeometryError::NegativeRadius when radius is negative.

§Examples
use use_geometry::{Circle, Point2};

let circle = Circle::try_new(Point2::new(0.0, 0.0), 2.5)?;

assert_eq!(circle.center(), Point2::new(0.0, 0.0));
assert_eq!(circle.radius(), 2.5);
Source

pub const fn center(&self) -> Point2

Returns the circle center.

Source

pub const fn radius(&self) -> f64

Returns the circle radius.

Source

pub fn diameter(&self) -> f64

Returns the circle diameter.

Source

pub fn area(&self) -> f64

Returns the circle area.

Source

pub fn circumference(&self) -> f64

Returns the circle circumference.

Source

pub fn contains_point(&self, point: Point2) -> bool

Returns true when point lies inside or on the circle boundary.

Source

pub fn contains_point_with_tolerance( &self, point: Point2, tolerance: f64, ) -> Result<bool, GeometryError>

Returns true when point lies inside the circle expanded by tolerance.

§Errors

Returns GeometryError::NonFiniteTolerance when tolerance is NaN or infinite.

Returns GeometryError::NegativeTolerance when tolerance is negative.

Source

pub fn aabb(&self) -> Aabb2

Returns the circle bounding box.

Trait Implementations§

Source§

impl Clone for Circle

Source§

fn clone(&self) -> Circle

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Circle

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Circle

Source§

fn eq(&self, other: &Circle) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Circle

Source§

impl StructuralPartialEq for Circle

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.