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 PartialEq<Sector> for Sector
impl PartialEq<Sector> for Sector
source§impl PartialOrd<Sector> for Sector
impl PartialOrd<Sector> for Sector
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§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));