Вопрос:
Я пытаюсь создать программу, которая обрабатывает графику, и я не совсем уверен, как реализовать масштабирование. Я сделал эффект масштабирования с примитивными формами, такими как линии и круги (с SDL_gfxPrimitives), уменьшая их, но это не работает для изображения. Как реализовать масштабирование?
Лучший ответ:
Существует библиотека SDL, которая поддерживает масштабирование:
Библиотека SDL_gfx эволюционировала из кода SDL_gfxPrimitives, который предоставлял основные процедуры рисования, такие как линии, круги или полигоны и SDL_rotozoom, которые реализовали интерполяционный ротозомер для поверхностей SDL.
Текущие компоненты библиотеки SDL_gfx:
- Графические примитивы (SDL_gfxPrimitves.h)
- Rotozoomer (SDL_rotozoom.h)
- Управление рамкой (SDL_framerate.h)
- Фильтры изображений MMX (SDL_imageFilter.h)
- Пользовательские функции Blit (SDL_gfxBlitFunc.h)
Ответ №1
Ваш вопрос не достаточно конкретный, чтобы дать конкретный ответ, который, скорее всего, даст вам то, что вы ищете.
То, что я могу вам предложить, – это предложение, которое вы впервые придумали для представления масштабирования.
Если вы уже знаете, как рисовать картинку, подумайте о том, что, когда дело доходит до компьютерной графики, почти всегда бывает, что “масштабирование” или “масштабирование” – это не что иное, как рисование вашей картины на все большем или меньшем размер.
Имея это в виду, возможно, вы начнете видеть, что разумный способ представления концепции масштабирования – это некоторая форма класса Camera, которая однозначно определит размер и расположение рисунков, которые вы рисуете.