Struct embedded_graphics::primitives::sector::Sector
source · pub struct Sector {
pub top_left: Point,
pub diameter: u32,
pub angle_start: Angle,
pub angle_sweep: Angle,
}
Expand description
Sector primitive
§Examples
§Create some sectors with different styles
use embedded_graphics::{
pixelcolor::Rgb565,
prelude::*,
primitives::{Sector, PrimitiveStyle, PrimitiveStyleBuilder},
};
// Sector with 1 pixel wide white stroke with top-left point at (10, 20) with a diameter of 30
Sector::new(Point::new(10, 20), 30, 0.0.deg(), 90.0.deg())
.into_styled(PrimitiveStyle::with_stroke(Rgb565::WHITE, 1))
.draw(&mut display)?;
// Sector with styled stroke and fill with top-left point at (10, 20) with a diameter of 30
let style = PrimitiveStyleBuilder::new()
.stroke_color(Rgb565::RED)
.stroke_width(3)
.fill_color(Rgb565::GREEN)
.build();
Sector::new(Point::new(10, 20), 30, 180.0.deg(), -90.0.deg())
.into_styled(style)
.draw(&mut display)?;
// Sector with blue fill and no stroke with a translation applied
Sector::new(Point::new(10, 20), 30, 0.0.deg(), 90.0.deg())
.translate(Point::new(15, 5))
.into_styled(PrimitiveStyle::with_fill(Rgb565::BLUE))
.draw(&mut display)?;
Fields§
§top_left: Point
Top-left point of the bounding-box of the circle supporting the sector
diameter: u32
Diameter of the circle supporting the sector
angle_start: Angle
Angle at which the sector starts
angle_sweep: Angle
Angle defining the sector sweep starting at angle_start
Implementations§
source§impl Sector
impl Sector
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 sector 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 sector 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 sector will match the top_left
and diameter
of the base circle.
Trait Implementations§
source§impl ContainsPoint for Sector
impl ContainsPoint for Sector
source§impl Dimensions for Sector
impl Dimensions for Sector
source§fn bounding_box(&self) -> Rectangle
fn bounding_box(&self) -> Rectangle
source§impl OffsetOutline for Sector
impl OffsetOutline for Sector
source§impl PartialOrd for Sector
impl PartialOrd for Sector
source§impl PointsIter for Sector
impl PointsIter for Sector
source§impl Primitive for Sector
impl Primitive for Sector
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,
Styled
.source§impl<C: PixelColor> StyledDimensions<PrimitiveStyle<C>> for Sector
impl<C: PixelColor> StyledDimensions<PrimitiveStyle<C>> for Sector
source§fn styled_bounding_box(&self, style: &PrimitiveStyle<C>) -> Rectangle
fn styled_bounding_box(&self, style: &PrimitiveStyle<C>) -> Rectangle
source§impl<C: PixelColor> StyledDrawable<PrimitiveStyle<C>> for Sector
impl<C: PixelColor> StyledDrawable<PrimitiveStyle<C>> for Sector
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>,
source§impl Transform for Sector
impl Transform for Sector
source§fn translate(&self, by: Point) -> Self
fn translate(&self, by: Point) -> Self
Translate the sector from its current position to a new position by (x, y) pixels,
returning a new Sector
. For a mutating transform, see translate_mut
.
let sector = Sector::new(Point::new(5, 10), 10, 0.0.deg(), 90.0.deg());
let moved = sector.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 sector from its current position to a new position by (x, y) pixels.
let mut sector = Sector::new(Point::new(5, 10), 10, 0.0.deg(), 90.0.deg());
sector.translate_mut(Point::new(10, 10));
assert_eq!(sector.top_left, Point::new(15, 20));