pub struct Arc {
pub top_left: Point,
pub diameter: u32,
pub angle_start: Angle,
pub angle_sweep: Angle,
}
Expand description
Arc primitive
§Examples
§Create some arcs with different styles
use embedded_graphics::{
pixelcolor::Rgb565,
prelude::*,
primitives::{Arc, PrimitiveStyle, PrimitiveStyleBuilder},
};
// Arc with 1 pixel wide white stroke with top-left point at (10, 20) with a diameter of 30
Arc::new(Point::new(10, 20), 30, 0.0.deg(), 90.0.deg())
.into_styled(PrimitiveStyle::with_stroke(Rgb565::WHITE, 1))
.draw(&mut display)?;
// Arc with styled stroke with top-left point at (15, 25) with a diameter of 20
let style = PrimitiveStyleBuilder::new()
.stroke_color(Rgb565::RED)
.stroke_width(3)
.build();
Arc::new(Point::new(15, 25), 20, 180.0.deg(), -90.0.deg())
.into_styled(style)
.draw(&mut display)?;
Fields§
§top_left: Point
Top-left point of the bounding-box of the circle supporting the arc
diameter: u32
Diameter of the circle supporting the arc
angle_start: Angle
Angle at which the arc starts
angle_sweep: Angle
Angle defining the arc sweep starting at angle_start
Implementations§
Source§impl Arc
impl Arc
Sourcepub const fn new(
top_left: Point,
diameter: u32,
angle_start: Angle,
angle_sweep: Angle,
) -> Self
pub const fn new( top_left: Point, diameter: u32, angle_start: Angle, angle_sweep: Angle, ) -> Self
Create a new arc delimited with a top-left point with a specific diameter and start and sweep angles
Sourcepub const fn with_center(
center: Point,
diameter: u32,
angle_start: Angle,
angle_sweep: Angle,
) -> Self
pub const fn with_center( center: Point, diameter: u32, angle_start: Angle, angle_sweep: Angle, ) -> Self
Create a new arc centered around a given point with a specific diameter and start and sweep angles
Sourcepub const fn from_circle(
circle: Circle,
angle_start: Angle,
angle_sweep: Angle,
) -> Self
pub const fn from_circle( circle: Circle, angle_start: Angle, angle_sweep: Angle, ) -> Self
Creates an arc based on a circle.
The resulting arc will match the top_left
and diameter
of the base circle.
Trait Implementations§
Source§impl Dimensions for Arc
impl Dimensions for Arc
Source§fn bounding_box(&self) -> Rectangle
fn bounding_box(&self) -> Rectangle
Returns the bounding box.
Source§impl PartialOrd for Arc
impl PartialOrd for Arc
Source§impl PointsIter for Arc
impl PointsIter for Arc
Source§impl Primitive for Arc
impl Primitive for Arc
Source§fn into_styled<S>(self, style: S) -> Styled<Self, S>where
Self: Sized,
fn into_styled<S>(self, style: S) -> Styled<Self, S>where
Self: Sized,
Converts this primitive into a
Styled
.Source§impl<C: PixelColor> StyledDimensions<PrimitiveStyle<C>> for Arc
impl<C: PixelColor> StyledDimensions<PrimitiveStyle<C>> for Arc
Source§fn styled_bounding_box(&self, style: &PrimitiveStyle<C>) -> Rectangle
fn styled_bounding_box(&self, style: &PrimitiveStyle<C>) -> Rectangle
Returns the bounding box using the given style.
Source§impl<C: PixelColor> StyledDrawable<PrimitiveStyle<C>> for Arc
impl<C: PixelColor> StyledDrawable<PrimitiveStyle<C>> for Arc
Source§impl Transform for Arc
impl Transform for Arc
Source§fn translate(&self, by: Point) -> Self
fn translate(&self, by: Point) -> Self
Translate the arc from its current position to a new position by (x, y) pixels,
returning a new Arc
. For a mutating transform, see translate_mut
.
let arc = Arc::new(Point::new(5, 10), 10, 0.0.deg(), 90.0.deg());
let moved = arc.translate(Point::new(10, 10));
assert_eq!(moved.top_left, Point::new(15, 20));
Source§fn translate_mut(&mut self, by: Point) -> &mut Self
fn translate_mut(&mut self, by: Point) -> &mut Self
Translate the arc from its current position to a new position by (x, y) pixels.
let mut arc = Arc::new(Point::new(5, 10), 10, 0.0.deg(), 90.0.deg());
arc.translate_mut(Point::new(10, 10));
assert_eq!(arc.top_left, Point::new(15, 20));
impl Copy for Arc
impl StructuralPartialEq for Arc
Auto Trait Implementations§
impl Freeze for Arc
impl RefUnwindSafe for Arc
impl Send for Arc
impl Sync for Arc
impl Unpin for Arc
impl UnwindSafe for Arc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.