- UID
- 190983
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-11-9
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
ads_name sset,ent;
long length;
if (acedSSGet(NULL, NULL, NULL, NULL, sset) != RTNORM) //选择实体
{
acutPrintf("\nNothing selected");
return;
}
acedSSLength(sset, &length); //length中包含选择集sset中不同的实体的数目(长整数)
if(length == 1)
{
AcDbObjectId objID;
AcDbEntity *pEntity;
acedSSName(sset, 0L, ent); //得到选择集中的第一个实体名ent
acdbGetObjectId(objID, ent);
acdbOpenObject(pEntity, objID, AcDb::kForWrite);
AcGeMatrix3d mat;
AcGePoint3d origin(0,0,0);
AcGeVector3d axis(0,0,1);
mat.setToIdentity(); //得到单位矩阵
Double angle = 30;
mat.setToRotation(angle,axis,origin); //构筑"旋转矩阵"
pEntity->transformBy(mat);
pEntity->close();
这样构筑的矩阵只是对选定实体围绕指定坐标轴进行旋转,若想让整个模型空间的视图及其坐标系的相对位置不变,只是改变观察者视点或观察角度的话,如何才能得到其旋转矩阵AcGeMatrix3d? |
|