Neuroware
@Neuroware
Программист в свободное от работы время

Как эффективней рисовать в 2d на C#?

Если в 2 словах, нужно иметь возможность на bitmap рисовать image, в произвольном месте произвольного размера. Про Graphics мне известно, но он достаточно медленный на больших изображениях, может есть чтото более быстрое? Гугление не дало ничего кроме DX, но возиться с координатами во float от 0 до 1 нет никакого желания.
  • Вопрос задан
  • 3050 просмотров
Решения вопроса 1
Если вам хочется эфективно, то тут вам поможет OpenGL или DX.
Насколько я понял вам нужно чтобы элемент отрисовки располагался на форме с остальными элементами, так может SharpGL(использовал в такой связке когда-то для курсового), насчет OpenTK не уверен так не использовал. Про DX ничего сказать не могу, не работал.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
AxisPod
@AxisPod
Гугление не дало ничего кроме DX, но возиться с координатами во float от 0 до 1 нет никакого желания.

Глупости это всё. Ортогональная проекция и работаете с экранными координатами в пикселах.
Ответ написан
Mrrl
@Mrrl
Заводчик кардиганов
Как насчёт Bitmap.LockBits()? Оно требует знания формата bitmap, но является самым быстрым способом редактирования.
Ответ написан
Nipheris
@Nipheris Куратор тега C#
Если вам уже предложенные варианты с использованием OpenGL или D3D не подходят (я вам их также посоветую, т.к. вы с аппаратным ускорением нарисуете 1000 картинок за то же время, за которое рисуете через Graphics, который будучи оберткой вокруг GDI+, рисует все на CPU), то попробуйте воспользоваться стандартным бэк-буфером - отрисовка на него заметно быстрее, чем непосредственно на экран. Если у вас таких изображений несколько, то лучше их отрисовать в буфер, а буфер - на экран.
А вообще, если серьезно: если у вас анимация и 2D-спрайты с риалтайм отрисовкой - то потратьте время на OpenGL или Direct2D, если у вас чисто вычислительная нагрузка без интерактивности - напишите сами код "рисования" одного битмапа на другом с использованием указателей, или вообще на С++ с вызовом из шарпа (нормальная практика для вычислительных задач).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы