/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/FcUI_Raster_Curve2.h
54 строки
1 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef _FCUI_RASTER_CURVE2_H_ #define _FCUI_RASTER_CURVE2_H_ #include "FcUI_Setting.h" #include "FcUI_Error.h" FCUIDEF void FcUI_Raster_Curve2_2t(uint8_t(*mImage)[4], size_t width, size_t height, ptrdiff_t x0, ptrdiff_t y0, ptrdiff_t x1, ptrdiff_t y1, ptrdiff_t x2, ptrdiff_t y2, const uint8_t mDownColor[4], const uint8_t mUpColor[4]); FCUIDEF void FcUI_Raster_Curve2_2t(uint8_t(*mImage)[4], size_t width, size_t height, ptrdiff_t x0, ptrdiff_t y0, ptrdiff_t x1, ptrdiff_t y1, ptrdiff_t x2, ptrdiff_t y2, const uint8_t mDownColor[4], const uint8_t mUpColor[4]) { const uint8_t **pColor; float mT, mStep = 0.1; ptrdiff_t mPrevX, mPrevY; mPrevX = x0; mPrevY = y0; for (mT = 0; mT <= 1; mT += mStep) { //ptrdiff_t mDirX = 2 * (1 - mT) * (x1 - x0) + 2 * mT * (x2 - x1); ptrdiff_t mDirY = 2 * (1 - mT) * (y1 - y0) + 2 * mT * (y2 - y1); ptrdiff_t _x = (1 - mT) * (1 - mT) * x0 + 2 * mT * (1 - mT) * x1 + (mT) * (mT) * x2; ptrdiff_t _y = (1 - mT) * (1 - mT) * y0 + 2 * mT * (1 - mT) * y1 + (mT) * (mT) * y2; if (llabs(mPrevX - _x) > 1 || llabs(mPrevY - _y) > 1) { mT -= mStep; mStep /= 2; continue; } pColor = mDirY < 0 ? &mDownColor : &mUpColor; mPrevX = _x; mPrevY = _y; if (_y >= 0 && _y < height && _x >= 0 && _x < width) { mImage[_y * width + _x][0] = (*pColor)[0]; mImage[_y * width + _x][1] = (*pColor)[1]; mImage[_y * width + _x][2] = (*pColor)[2]; mImage[_y * width + _x][3] = (*pColor)[3]; } } } #endif // !_FCUI_RASTER_CURVE2_H_