2016-07-06 4 views
0

Я использую следующий код для рисования на холсте 32x32 пикселей, используя MouseMoveEvent для рисования пиксельных прямоугольников и создания пиксельной графики.Draw Pixel Ellipse on Canvas

Ив создал класс под названием RectItem

и ObservableCollection

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

я добавить прямоугольник размера пикселя с помощью (сорт этого полотна с привязкой к 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); 

Все это прекрасно работает, но как я могу добавить эллипс пикселей (например, o ne вы можете использовать при создании файла курсора в VS)

как показано ниже, только без полей. PixelRectangle

+0

Точно так же, как вы показали здесь. Разница была бы в ItemTemplate элемента ItemsControl, который вы используете для визуализации ваших элементов. – Clemens

ответ

0

Поместите прямоугольники, где пиксели нанесены на график в процедуре рисования неэтилированного эллипса, например. Brensenham: https://sites.google.com/site/ruslancray/lab/projects/bresenhamscircleellipsedrawingalgorithm/bresenham-s-circle-ellipse-drawing-algorithm, делая соответствующие преобразования и масштабирование и т. Д.