Нужно развить решение. Мое окно состоит из комплекса МТ-объектов - канвасов. Их изображения нужно уменьшить сначала по отдельности, а потом совместить в одно. Нужен такой алгоритм. То есть, по отдельности допустим есть, а чтобы совместить уменьшенные картинки, еще нет.
Расчёт изменения относительных координат объектов. У них же есть отправная точка. По X и по Y. Пересчитайте их относительно общего размера по ширине и высоте общего канваса - окна.
Расчёт изменения относительных координат объектов. У них же есть отправная точка. По X и по Y. Пересчитайте их относительно общего размера по ширине и высоте общего канваса - окна.
Понял идею. Попробую, если Николай откажется. Спасибо.
Нужно развить решение. Мое окно состоит из комплекса МТ-объектов - канвасов. Их изображения нужно уменьшить сначала по отдельности, а потом совместить в одно. Нужен такой алгоритм. То есть, по отдельности допустим есть, а чтобы совместить уменьшенные картинки, еще нет.
во первых конечно его надо сделать. то есть чтобы оно имело немного целостный вид. Ещё в давние времена говорили - стоп, выпускайся..Ну да ладно, паровоз неостановим ;-) будем считать что это вечная авторская версия..
раз уж пошла такая пляска с C#, то чтобы быть "впереди планеты всей" - посмотрите на OpenGL. И рисуйте им на "канвасе" (правда в приличных местах это так не называется, это контекст). Это будет сумасшедше быстро и можете накладывать, масштабировать, вращать, извращать как угодно.
Расчёт изменения относительных координат объектов. У них же есть отправная точка. По X и по Y. Пересчитайте их относительно общего размера по ширине и высоте общего канваса - окна.
Такой метод векторного масштабирования будет очень сильно визуально проигрывать растровому масштабированию. И как быть с текстом? Размер шрифта будет непропорционально "прыгать"
Векторное масштабирование было бы приемлемо, если бы координаты фигур можно было задавать не целыми(int) значениями, а дробными (double). Но для этого нужна новая библиотека продвинутого Canvas со сглаживанием.
во первых конечно его надо сделать. то есть чтобы оно имело немного целостный вид. Ещё в давние времена говорили - стоп, выпускайся..Ну да ладно, паровоз неостановим ;-) будем считать что это вечная авторская версия..
раз уж пошла такая пляска с C#, то чтобы быть "впереди планеты всей" - посмотрите на OpenGL. И рисуйте им на "канвасе" (правда в приличных местах это так не называется, это контекст). Это будет сумасшедше быстро и можете накладывать, масштабировать, вращать, извращать как угодно.
Если писать для себя, то конечно. Но вся петрушка в маркете.
А Вы работали с OpenGL или с DirectX? Они ресурсы видеокарты используют?
ЗЫ Хотя глупый вопрос. Конечно да.
Не могу понять, почему разработчики прикрутили OpenCL, а не OpenGL? Наверное потому что это было сделать проще.
ЗЫЫ Почитал про OpenCL. Эта технология больше заточена под вычисления, тогда понятно почему выбор был сделан не в пользу OpenGL.
Петр, да тебе было бы круто освоить OpenCL для своего ГУИ. Если я ничего не путаю, то для маркета это прокатит. Только нужно, чтобы пользователи установили бы у себя ядро OpenCL , ну и, конечно, чтобы их видеокарта это поддерживала.
А то возможность такая есть уже давно, но что-то активности в этом направлении пока не наблюдается.
Nikolai Semko: Такой метод векторного масштабирования будет очень сильно визуально проигрывать растровому масштабированию. И как быть с текстом? Размер шрифта будет непропорционально "прыгать"
Векторное масштабирование было бы приемлемо, если бы координаты фигур можно было задавать не целыми(int) значениями, а дробными (double). Но для этого нужна новая библиотека продвинутого Canvas со сглаживанием.
Первое, что пришло на ум. Наверное сказывается моя давнишняя работа с векторной графикой в 3D Studio MAX - привык мыслить так. Да, там всё в даблах конечно же, и, кстати, очень сильно визуально выигрывает перед растровым масштабированием в фотошопе.
Nikolai Semko: Такой метод векторного масштабирования будет очень сильно визуально проигрывать растровому масштабированию. И как быть с текстом? Размер шрифта будет непропорционально "прыгать"
Векторное масштабирование было бы приемлемо, если бы координаты фигур можно было задавать не целыми(int) значениями, а дробными (double). Но для этого нужна новая библиотека продвинутого Canvas со сглаживанием.
И вот тут мне пришло смс в голову: делаем растровый снимок требуемого окна-формы, и затем уже его масштабируем как один растровый объект.
Нужно развить решение. Мое окно состоит из комплекса МТ-объектов - канвасов. Их изображения нужно уменьшить сначала по отдельности, а потом совместить в одно. Нужен такой алгоритм. То есть, по отдельности допустим есть, а чтобы совместить уменьшенные картинки, еще нет.
Расчёт изменения относительных координат объектов. У них же есть отправная точка. По X и по Y. Пересчитайте их относительно общего размера по ширине и высоте общего канваса - окна.
Расчёт изменения относительных координат объектов. У них же есть отправная точка. По X и по Y. Пересчитайте их относительно общего размера по ширине и высоте общего канваса - окна.
Понял идею. Попробую, если Николай откажется. Спасибо.
Нужно развить решение. Мое окно состоит из комплекса МТ-объектов - канвасов. Их изображения нужно уменьшить сначала по отдельности, а потом совместить в одно. Нужен такой алгоритм. То есть, по отдельности допустим есть, а чтобы совместить уменьшенные картинки, еще нет.
во первых конечно его надо сделать. то есть чтобы оно имело немного целостный вид. Ещё в давние времена говорили - стоп, выпускайся..Ну да ладно, паровоз неостановим ;-) будем считать что это вечная авторская версия..
раз уж пошла такая пляска с C#, то чтобы быть "впереди планеты всей" - посмотрите на OpenGL. И рисуйте им на "канвасе" (правда в приличных местах это так не называется, это контекст). Это будет сумасшедше быстро и можете накладывать, масштабировать, вращать, извращать как угодно.
Расчёт изменения относительных координат объектов. У них же есть отправная точка. По X и по Y. Пересчитайте их относительно общего размера по ширине и высоте общего канваса - окна.
во первых конечно его надо сделать. то есть чтобы оно имело немного целостный вид. Ещё в давние времена говорили - стоп, выпускайся..Ну да ладно, паровоз неостановим ;-) будем считать что это вечная авторская версия..
раз уж пошла такая пляска с C#, то чтобы быть "впереди планеты всей" - посмотрите на OpenGL. И рисуйте им на "канвасе" (правда в приличных местах это так не называется, это контекст). Это будет сумасшедше быстро и можете накладывать, масштабировать, вращать, извращать как угодно.
Такой метод векторного масштабирования будет очень сильно визуально проигрывать растровому масштабированию. И как быть с текстом? Размер шрифта будет непропорционально "прыгать"
Первое, что пришло на ум. Наверное сказывается моя давнишняя работа с векторной графикой в 3D Studio MAX - привык мыслить так. Да, там всё в даблах конечно же, и, кстати, очень сильно визуально выигрывает перед растровым масштабированием в фотошопе.
Такой метод векторного масштабирования будет очень сильно визуально проигрывать растровому масштабированию. И как быть с текстом? Размер шрифта будет непропорционально "прыгать"
И вот тут мне пришло смс в голову: делаем растровый снимок требуемого окна-формы, и затем уже его масштабируем как один растровый объект.
И вот тут мне пришло смс в голову: делаем растровый снимок требуемого окна-формы, и затем уже его масштабируем как один растровый объект.
Ну а как иначе? Я думаю, Петр так и хотел.
Вот уже готовая функция масштабирования растра, который находится в массиве BMP[] размерностью width_bmp x height_bmp