一张长方形的图片,以左边为轴心,从右边开始旋转,把他给旋转到90度后应该是条直线,然后在旋转到180,记录旋转过程中图片的每个状态,就是每真动画。有点象门由关闭到打开的过程,记录打开的门的各个角度所处侦,非常急,请大家指点,谢谢。

解决方案 »

  1.   

    用一个定时器,定时把Image1的Width减少,直到为-Width,就能看到类似翻页的效果
      

  2.   

    DoubleBuffered := True
    否则可能会有闪烁
      

  3.   

    不用透视,则图片每一行的像素在转动时的高度不变,只要考虑如何压缩就行了.
    也就是,每一行,由
    ***********
    变成
    **********
    变成
    *********
    变成
    *******
    变成
    *****
    变成
    **
    变成
    |压缩图片按cos(dt)计算宽度,其中dt代表每次的转动角.到此总共已经转了90度,也就是图片已经垂直于你的视平面.接下来,图像要逐步变大,但如果以图像的左边为转轴,则图像将跑到原来图像之外去了.
      

  4.   


    注意,图片转动后的每一个像素必须由原来图片的多个像素混合产生.
    如何混合,要根据转动角度大小来定,
    如果转角是60度,则每个像素正好是原来图片2的像素混成:
    P'[i]就是原来的像素P[2i-1],P[2i]的平均,
    用它们的RGB分量表示,为
    P'[i].R=(P[2i-1].R+P[2i].R)/2
    P'[i].G=(P[2i-1].G+P[2i].G)/2
    P'[i].H=(P[2i-1].B+P[2i].B)/2
    但一般情况就需要加权平均,且可能由多个来平均.