次の変換コードがあります。
//preparing transform
CATransform3D basicTrans = CATransform3DIdentity;
basicTrans.m34 =1.0/-projection;
//calculating angle
double angle= [[self angleValueForBlockHeight:height] doubleValue];
double rangle;
if (up)
{
rangle=angle/360*(2.0*M_PI);
}
else
{
rangle=(360.0-angle)/360*(2.0*M_PI);
};
//NSLog(@" angle: %g", angle);
//transforming
bView.layer.transform = CATransform3DRotate(basicTrans, rangle, 1.0f, 0.0f, 0.0f);
ご覧のとおり、特定の角度を使用して bView を回転させ、回転後に高さの値を可変にしています。ご覧のとおり、 angleValueForBlockHeight メソッドがあります。このメソッドには非常に醜いコードがあります。私の質問は、この変換に必要な角度をどのように計算できるかです。式またはコードは素晴らしいでしょう。お願い助けて。
ご清聴ありがとうございました。