在画布上绘制像素椭圆

时间:2016-07-06 22:55:08

标签: c# wpf canvas draw ellipse

我使用以下代码在32x32 px画布上绘图,使用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; }
    }

和一个ObservableCollection

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中创建光标文件时可以使用的那样)

如下所示,只是没有边距。PixelRectangle

1 个答案:

答案 0 :(得分:0)

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