TA的每日心情 | 开心 7 小时前 |
---|
签到天数: 20 天 [LV.4]偶尔看看III
管理员
- 积分
- 1393
|
- void SetView(AcGePoint2d Pt1, AcGePoint2d Pt2, double ex采用ratio)
- {
- AcGePoint2d CenterPt;
- if ((fabs(Pt1.x - Pt2.x) < 1e-6) || (fabs(Pt1.y - Pt2.y) < 1e-6))
- {
- return;
- }
-
- //确保两个坐标点分别为左上角和右下角
- if (Pt1.x>Pt2.x)
- {
- double tmp;
- tmp = Pt1.x;
- Pt1.x = Pt2.x;
- Pt2.x = tmp;
- }
- if (Pt2.y>Pt1.y)
- {
- double tmp;
- tmp = Pt1.y;
- Pt1.y = Pt2.y;
- Pt2.y = tmp;
- }
-
- //获取当前DwgView的尺寸
- CRect CADrect;
- acedGetAcadDwgView()->GetClientRect(&CADrect);
- double width, height, ratio;
- ratio = (double)(CADrect.right - CADrect.left) / (double)(CADrect.bottom - CADrect.top);
- if (fabs(ratio) < 1e-6)
- {
- return;
- }
- if ((Pt2.x - Pt1.x) / (Pt1.y - Pt2.y) > ratio)
- {
- width = Pt2.x - Pt1.x;
- height = width / ratio;
- }
- else
- {
- height = Pt1.y - Pt2.y;
- width = height * ratio;
- }
-
- //设置当前视图中心点
- CenterPt.x = (Pt1.x + Pt2.x) / 2;
- CenterPt.y = (Pt1.y + Pt2.y) / 2;
-
- //改变当前视图
- AcDbViewTableRecord pVwRec;
- pVwRec.setCenterPoint(CenterPt);
- pVwRec.setWidth(width * ex采用ratio);
- pVwRec.setHeight(height * ex采用ratio);
- acedSetCurrentView(&pVwRec, NULL);
- }
复制代码 |
|