Image 日冕中的大图像旋转

Image 日冕中的大图像旋转,image,rotation,coronasdk,scramble,Image,Rotation,Coronasdk,Scramble,我有一个尺寸为1162 x 16的图像,我想在触摸移动阶段事件中旋转它, 问题是,当图像旋转时,它会被置乱像素化,尽管它不会被缩放, 我尝试了一幅大小为128 x 128的图像,但图像没有像素化, 可能是因为图像太大了 旋转是否会影响图像结构??? 有人知道为什么会这样吗 或者如果有人有解决办法,你能帮我吗 以下是使其成为方形后的更新代码: local bck = display.newRect (0,0,display.contentWidth,display.contentHeight) b

我有一个尺寸为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)       

你的形象不是方形的。这意味着,当你旋转90度时,你试图将一个16 x 1162的图像放入一个1162 x 16的空间

这意味着图像在一个维度上被挤压,在另一个维度上被拉伸

您需要使源图像和目标图像1162 x 1162都添加一个边框,可以是透明的,也可以是原始图像中不存在的一些已知颜色,以便在旋转完成后将其删除


128 x 128的测试图像之所以有效,是因为它是正方形。

thx ChrisF我已经尝试过用空白区域制作1162 x1162,但没有效果,旋转时仍然是像素化的:S@Israa.Kh-我猜你还在把16号线延长到1162号线。在问题中编辑代码。