在画布上绘制像素椭圆

本文关键字:像素 绘制 | 更新日期: 2023-09-27 17:55:54

我使用以下代码在 32x32 像素的画布上绘制,使用 MouseMoveEvent 绘制像素大小的矩形并创建像素图形。

我创建了一个名为 RectItem 的类

public class RectItem
    {
        public double X { get; set; }
        public double Y { get; set; }
        public double Width { get; set; }
        public double Height { get; set; }
        public SolidColorBrush Col { get; set; }
    }

和可观察集合

public ObservableCollection<RectItem> RectItems { get; set; }

我通过以下方式添加像素大小的矩形(cv 是绑定到 RectItems 的画布)

RectItem rec = new RectItem { X = (int)e.GetPosition(cv).X, Y = (int)e.GetPosition(cv).Y, Width = 1, Height = 1, Col = new SolidColorBrush(CurrentColor) };
RectItems.Add(rec);

这一切都很好用,但是我将如何添加像素椭圆(就像您在VS中创建光标文件时可以使用的椭圆一样)

像下面一样,只是没有边距。像素矩形

在画布上绘制像素椭圆

在非反化椭圆绘制例程中绘制像素的位置放置矩形,例如 Brensenham: https://sites.google.com/site/ruslancray/lab/projects/bresenhamscircleellipsedrawingalgorithm/bresenham-s-circle-ellipse-drawing-algorithm,进行适当的变换和缩放等。