ippiGetRotateTransform и nppiRotate оба принимают параметры сдвига x и y, но я не уверен, как они работают.ИПП и АЭС вращаются вокруг (0, 0), а затем сдвигают результат. Этот пример показывает использование ippiGetRotateShift для вращения вокруг центра, но не объясняет, как он используется.
Соответствующая часть примера:
Ipp8u src[4*4] = ...;
Ipp8u dst[6*6];
double xShift;
double yShift;
double xShiftTmp;
double yShiftTmp;
double xCenterSrc = 2.0;
double yCenterSrc = 2.0;
double xCenterDst = 3.5;
double yCenterDst = 2.5;
double angle = 35.0;
ippiGetRotateShift ( xCenterSrc, yCenterSrc, angle, &xShift, &yShift );
/* xShift = -0.79 , yShift = 1.51 */
ippiGetRotateShift ( 1.0, 1.0, angle, &xShiftTmp, &yShiftTmp);
xShift += xShiftTmp; yShift += yShiftTmp;
/* xShift = -1.18, yShift = 2.26 */
xShift += xCenterDst - xCenterSrc;
yShift += yCenterDst - yCenterSrc;
/* xShift = 0.32, yShift = 2.76 */
В этом примере показано, на что меняются значения, а не как и почему.Даже пункт назначения не объяснен.Почему это (3.5, 2.5) вместо (3, 3)?
В любом случае параметры сдвига x и y ведут себя одинаково. Как я могу рассчитать их для АЭС без зависимости от IPP?