こんな感じ?
菊池さんの。
http://www.ailight.jp/blog/kazuk/archive/2008/12/22/27144.aspx
問題:座標のグリッド揃え
きれいにそろった図形というのはきれいな物です。
図形をそろえる上で、グリッド揃え等が必要になったりするでしょう。
これには座標をある一定のグリッド間隔に丸める必要があります。struct Position { int x; int y; } (Javaの場合にはclass)を int gridPitch に丸めるFitToGrid関数を書いて下さい。
とりあえずC#で。
public class Program { public static void Main(string[] args) { var pos = new Position() { x = 123, y = 256 }; var fittedPos = FitToGrid(pos, 3); Console.WriteLine(pos); Console.WriteLine(fittedPos); Console.ReadKey(); } private static Position FitToGrid(Position sourcePosition, int gridPitch) { Position retPos; retPos.x = sourcePosition.x - ( sourcePosition.x % gridPitch ); retPos.y = sourcePosition.y - ( sourcePosition.y % gridPitch ); return retPos; } } public struct Position { public int x; public int y; public override string ToString() { return String.Format("座標:x={0}, y={1}", this.x, this.y); } }
実行結果
座標:x=123, y=256
座標:x=123, y=255
後でもうちょっと精査する(かも)。