#image #rotation #coronasdk #scramble
#изображение #поворот #coronasdk #скремблирование
Вопрос:
у меня есть изображение размером 1162 x 16, которое я хочу повернуть при касании события «перемещенная фаза», проблема в том, что при вращении изображения оно становится скремблированным «пикселизированным», хотя оно не масштабируется, я пробовал с изображением размером 128 x 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:
Ваше изображение не квадратное. Это означает, что при повороте на 90 градусов (скажем) вы пытаетесь поместить изображение размером 16 x 1162 в пространство размером 1162 x 16.
Это означает, что изображение сжимается в одном измерении и растягивается в другом.
Вам нужно сделать исходное и целевое изображения размером 1162 x 1162, добавив рамку, либо прозрачную, либо какого-либо известного цвета, отсутствующего в исходном изображении, чтобы вы могли удалить ее после завершения поворота.
Тестовое изображение размером 128 x 128 работает, потому что оно квадратное.
Комментарии:
1. спасибо, Крис, я уже пробовал сделать его 1162 x1162 с пустыми областями, но не сработало, все равно при повороте он становится пикселизированным.: S
2. @Israa. Kh — я предполагаю, что вы все еще растягиваете 16 до 1162. Отредактируйте свой код в своем вопросе.