【问题标题】:Draw Pixel Ellipse on Canvas在画布上绘制像素椭圆
【发布时间】:2016-07-06 22:55:08
【问题描述】:

我使用以下代码在 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; }
    }

和一个 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

【问题讨论】:

  • 与您在此处显示的方式完全相同。不同之处在于您用于可视化项目的 ItemsControl 的 ItemTemplate。

标签: c# wpf canvas draw ellipse


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多