在 Canvas 上绘制像素椭圆
Draw Pixel Ellipse on Canvas
我使用以下代码在 32x32 像素上绘制 canvas,使用 MouseMoveEvent 绘制像素大小的矩形并创建像素图形。
我创建了一个名为 RectItem
的 class
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 的 canvas)添加像素大小的矩形
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
在非抗锯齿椭圆绘图例程中放置绘制像素的矩形,例如Bresenham:https://sites.google.com/site/ruslancray/lab/projects/bresenhamscircleellipsedrawingalgorithm/bresenham-s-circle-ellipse-drawing-algorithm,进行适当的转换和缩放等
我使用以下代码在 32x32 像素上绘制 canvas,使用 MouseMoveEvent 绘制像素大小的矩形并创建像素图形。
我创建了一个名为 RectItem
的 classpublic 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 的 canvas)添加像素大小的矩形
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
在非抗锯齿椭圆绘图例程中放置绘制像素的矩形,例如Bresenham:https://sites.google.com/site/ruslancray/lab/projects/bresenhamscircleellipsedrawingalgorithm/bresenham-s-circle-ellipse-drawing-algorithm,进行适当的转换和缩放等