ジオメトリの読み込みと表示を可能にするプログラムを書いています。最近、ズーム機能を追加しました。低いズーム レベルではすべて正常に動作しますが、ズーム レベルが上がると (約 10,000 まで)、線が消え始めます。場合によっては、線の一方の端が非常に太く、もう一方の端が非常に細い場合があります。線を引くために使用したコードは次のとおりです。
float edgeWidth = (float)(2/ scale);
Matrix tranf = new Matrix();
tranf.Scale((float)scale, (float)scale);
tranf.Translate(-offSet.X, -offSet.Y);
Graphics grp = displayArea.CreateGraphics();
grp.Transform = tranf;
grp.SmoothingMode = SmoothingMode.AntiAlias;
Pen pen = new Pen(Color.Red, edgeWidth);
grp.DrawLine(pen, (float)(tempShape.subPoly[i][j].X), (float)(tempShape.subPoly[i][j].Y),
(float)(tempShape.subPoly[i][(j + 1) % tempShape.subPoly[i].Count].X), (float)(tempShape.subPoly[i][(j + 1) % tempShape.subPoly[i].Count].Y))