вращение большого изображения в короне - PullRequest
0 голосов
/ 24 октября 2011

у меня есть изображение размером 1162 x 16, которое я хочу повернуть на событии «сдвинутая фаза», проблема в том, что когда изображение вращается, оно скремблируется, «пикселируется», хотя оно не масштабируется, я пробовал с изображением размером 128 х 128, но изображение не было пикселированным, это может быть из-за большого размера изображения !!

Поворот влияет на структуру изображения ??? У кого-нибудь есть идея, почему это происходит ???

или если у кого-то есть обходной путь, пожалуйста, помогите мне с этим.

вот обновленный код после того, как он стал квадратным:

local bck = display.newRect (0,0,display.contentWidth,display.contentHeight)
bck.x = display.contentWidth * 0.5
bck.y = display.contentHeight * 0.5
bck:setFillColor (255,255,255)

local img = display.newImageRect ("laser1.png",1170,1170)
img.x = display.contentWidth * 0.5
img.y = display.contentHeight * 0.5


local  function getRotation(PointX1,PointY1,PointX2,PointY2)
  --display.getCurrentStage():setFocus ( Bug )
  local atan2 = math.atan2
  local pi = 3.14159265358

  local deltax = PointX2 - PointX1
  local deltay = PointY2 - PointY1

  local currentAngle = ((atan2(deltay,deltax) )* 180.0) / pi
  local rotationDigree = currentAngle - img.previousAngle;

  img.previousAngle  = currentAngle

  return rotationDigree;
 end

local function handleTouch ( event )
 img.previousAngle = 1
 if( event.phase == "moved" ) then
    img.rotation = getRotation ( img.x , img.y , event.x , event.y )
 end
end


Runtime:addEventListener ("touch",handleTouch)       

1 Ответ

0 голосов
/ 24 октября 2011

Ваше изображение не квадратное.Это означает, что когда вы поворачиваетесь на 90 градусов (скажем), вы пытаетесь вписать изображение 16 x 1162 в пространство размером 1162 x 16.

Это означает, что изображение сжимается в одном измерении и растягивается вдругой.

Необходимо сделать исходное и целевое изображения 1162 x 1162, добавив рамку прозрачного или известного цвета, которого нет в исходном изображении, чтобы вы могли удалить его после завершения поворота.

Тестовое изображение 128 x 128 работает, потому что оно квадратное.

...