转成C#的写法便于大家学习
 -
- /// <summary>
- /// 窗口缩放
- /// </summary>
- /// <param name="Pt1"></param>
- /// <param name="Pt2"></param>
- /// <param name="dScale">放大倍数 大于 0 </param>
- /// <param name="OffestCenterX">中心偏移量X</param>
- /// <param name="OffestCenterY">中心偏移量Y</param>
- /// <remarks></remarks>
- public void ZoomW(Point3d Pt1, Point3d Pt2, double dScale = 1.0, double OffestCenterX = 0, double OffestCenterY = 0)
- {
- double MinX = Math.Min(Pt1.X, Pt2.X);
- double MinY = Math.Min(Pt1.Y, Pt2.Y);
- double MaxX = Math.Max(Pt1.X, Pt2.X);
- double MaxY = Math.Max(Pt1.Y, Pt2.Y);
- if (MaxX > MinX && MaxY > MinY)
- {
- ViewTableRecord ViewR = new ViewTableRecord();
- ViewTableRecord OldView = Doc.Editor.GetCurrentView;
- if (dScale <= 0)
- {
- dScale = 1;
- }
- double newWidth = (MaxX - MinX) / dScale;
- double newHeight = (MaxY - MinY) / dScale;
- if ((newHeight / OldView.Height) > (newWidth / OldView.Width))
- {
- ViewR.Height = newHeight;
- }
- else
- {
- ViewR.Width = newWidth;
- }
- ViewR.CenterPoint = new Point2d((MaxX + MinX) / 2 + OffestCenterX, (MaxY + MinY) / 2 + OffestCenterY); Doc.Editor.SetCurrentView(ViewR);
- Doc.Editor.UpdateScreen();
- }
- }
|