pub struct Triangle {
pub p1: Point,
pub p2: Point,
pub p3: Point,
}
Expand description
Triangle primitive
§Examples
The macro examples make for more concise code.
§Create some triangles with different styles
use embedded_graphics::{
pixelcolor::Rgb565, prelude::*, primitives::Triangle, style::PrimitiveStyle,
};
// Triangle with red 1 px wide stroke
Triangle::new(Point::new(50, 20), Point::new(60, 35), Point::new(70, 80))
.into_styled(PrimitiveStyle::with_stroke(Rgb565::RED, 1))
.draw(&mut display)?;
// Triangle with translation applied
Triangle::new(Point::new(50, 20), Point::new(60, 35), Point::new(70, 80))
.translate(Point::new(65, 35))
.into_styled(PrimitiveStyle::with_stroke(Rgb565::GREEN, 1))
.draw(&mut display)?;
§Create a triangle from an array of points
use embedded_graphics::{geometry::Point, primitives::Triangle};
let p1 = Point::new(5, 10);
let p2 = Point::new(15, 25);
let p3 = Point::new(5, 25);
// Owned
let tri = Triangle::from_points([p1, p2, p3]);
// Or borrowed
let tri_ref = Triangle::from_points(&[p1, p2, p3]);
Fields§
§p1: Point
First point of the triangle
p2: Point
Second point of the triangle
p3: Point
Third point of the triangle
Implementations§
Trait Implementations§
Source§impl Dimensions for Triangle
impl Dimensions for Triangle
Source§impl Ord for Triangle
impl Ord for Triangle
Source§impl PartialOrd for Triangle
impl PartialOrd for Triangle
Source§impl Primitive for Triangle
impl Primitive for Triangle
Source§fn into_styled<C>(
self,
style: PrimitiveStyle<C>,
) -> Styled<Self, PrimitiveStyle<C>>where
C: PixelColor,
Self: Sized,
fn into_styled<C>(
self,
style: PrimitiveStyle<C>,
) -> Styled<Self, PrimitiveStyle<C>>where
C: PixelColor,
Self: Sized,
Converts this primitive into a
Styled
.Source§impl Transform for Triangle
impl Transform for Triangle
Source§fn translate(&self, by: Point) -> Self
fn translate(&self, by: Point) -> Self
Translate the triangle from its current position to a new position by (x, y) pixels,
returning a new Triangle
. For a mutating transform, see translate_mut
.
let tri = Triangle::new(Point::new(5, 10), Point::new(15, 20), Point::new(8, 15));
let moved = tri.translate(Point::new(10, 10));
assert_eq!(moved.p1, Point::new(15, 20));
assert_eq!(moved.p2, Point::new(25, 30));
assert_eq!(moved.p3, Point::new(18, 25));
Source§fn translate_mut(&mut self, by: Point) -> &mut Self
fn translate_mut(&mut self, by: Point) -> &mut Self
Translate the triangle from its current position to a new position by (x, y) pixels.
let mut tri = Triangle::new(Point::new(5, 10), Point::new(15, 20), Point::new(10, 15));
tri.translate_mut(Point::new(10, 10));
assert_eq!(tri.p1, Point::new(15, 20));
assert_eq!(tri.p2, Point::new(25, 30));
assert_eq!(tri.p3, Point::new(20, 25));
impl Copy for Triangle
impl Eq for Triangle
impl StructuralPartialEq for Triangle
Auto Trait Implementations§
impl Freeze for Triangle
impl RefUnwindSafe for Triangle
impl Send for Triangle
impl Sync for Triangle
impl Unpin for Triangle
impl UnwindSafe for Triangle
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
)Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes