transformby的简单用法

该代码功能如下,添加一个文字对象,然后进行平移和旋转
AcAxDocLock lock;
AcDbSymbolTableRecordPointer<AcDbBlockTableRecord> bp(acdbSymUtil()->blockModelSpaceId(acdbCurDwg()),AcDb::kForWrite);
AcGePoint3d ins_Pnt(100,100,0),m_Pnt(200,200,0),b_Pnt(20,20,0);
AcDbText* pText=new AcDbText(ins_Pnt,_T("txh0001"));
pText->setHeight(1000);

//定义一个b_Pnt到m_Pnt间的向量,向量值为(180,180,0),然后将文字对象按向量值移动(100+180=280,100+180=280,0)
AcGeVector3d vec=m_Pnt-b_Pnt;

//以点b_pnt定义一个向量(20,20,0),让文字对象移动(100+20=120,100+20=120,0)
//AcGeVector3d vec(b_Pnt.asVector()); 

AcGeMatrix3d mat1,mat2;
mat1.setTranslation(vec);
mat2.setToRotation(-90*PI/180,AcGeVector3d::kZAxis,m_Pnt); //以m_Pnt为中心点,Z轴为旋转轴,旋转-90度,要转换为弧度
bp->appendAcDbEntity(pText);
pText->transformBy(mat1); 
pText->transformBy(mat2);
pText->close();

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值