Lua (Codea) で「ズーム トゥ フィット」アルゴリズムを構築しようとしています。キャンバス上の任意の形状を想像してください。この形状の中心を自動的にズームして、キャンバスの大部分を占め、中心に配置したいと考えています。最後に、最初の状況にズームアウトできるようにしたいので、マトリックスがその仕事をするはずです。これを行う簡単な方法はありますか?Lua 以外のコードでも構いません。
質問する
341 次
1 に答える
1
C# では、
double aspectRatio = shape.Width / shape.Height;
if (aspectRatio > 1)
{
// Width defines the layout
double origShapeWidth = shape.Width;
shape.Width = panel.Width;
shape.Height = panel.Width * shape.Height / origShapeWidth;
// Center the shape
double margin = (panel.Height - shape.Height) / 2;
shape.Margin = new Thickness(0, margin, 0, margin);
}
else
{
// Height defines the layout
double origShapeHeight = shape.Height;
shape.Height = panel.Height;
shape.Width = panel.Height * shape.Width / origShapeHeight;
// Center the shape
double margin = (panel.Width - shape.Width) / 2;
shape.Margin = new Thickness(margin, 0, margin, 0);
}
于 2013-08-04T23:30:06.843 に答える