Struct embedded_graphics::primitives::arc::Arc
source · 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 fn with_center(
center: Point,
diameter: u32,
angle_start: Angle,
angle_sweep: Angle,
) -> Self
pub 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 fn from_circle(
circle: Circle,
angle_start: Angle,
angle_sweep: Angle,
) -> Self
pub 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§fn draw_styled<D>(
&self,
style: &PrimitiveStyle<C>,
target: &mut D,
) -> Result<Self::Output, D::Error>where
D: DrawTarget<Color = C>,
fn draw_styled<D>(
&self,
style: &PrimitiveStyle<C>,
target: &mut D,
) -> Result<Self::Output, D::Error>where
D: DrawTarget<Color = C>,
Draws the primitive using the given style.
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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<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.