【某彩笔早期驯服Maya C++记录】通过MFnDagNode类获得DagNode的前后

前言

自学第六天。Maya的文档,您但凡多说一点,事情都不会变得那么麻烦。这几天要去搞别的事了,比较赶,所以每天啃这个的时间又要被压缩了,学习真是太快乐了(精神错乱中)。
——在我们以各种方式得到DagPath后,例如

MDagPath::getAPathTo(	const MObject & 	node,MDagPath & 	path )

就可以通过创建工具MFnDagNode,连接当前的node,就可以得到其父节点或者子节点,如果不确定是否有子节点或者父节点,也可以调用hasParent/ hasChild进行查询

如何找到Dagnode的前后

  • 创建新的工具,并连接到node-》setObject
    setObject有多个重载,你可以直接传入MObject或者是MDagPath
MObject node_root = root_joint_path.node();
MFnDagNode nodeFn;
nodeFn.setObject(root_joint_path);
  • 例子:找到root关节的第一个子关节
	//创建工具
	MFnDagNode nodeFn;
	//root连接到工具
	nodeFn.setObject(root_joint_path);
	//打印root DAGNode的名称
	MGlobal::displayInfo(nodeFn.name());
	//获取root的子
	MObject sec_joint=nodeFn.child(0);
	nodeFn.setObject(sec_joint);
	MGlobal::displayInfo("sec_" + nodeFn.name());
	// check if the DAG is the child 
	MObject check = nodeFn.parent(0);
	if (check == node_root) {
		MGlobal::displayInfo("Success to find child");
	}
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Android上实现水彩笔绘画,可以使用以下步骤: 1. 创建自定义View,继承自View或SurfaceView。 2. 在该中添加绘图方法,在绘图方法中使用Canvas和Paint实现绘制水彩效果的画笔。 3. 在onTouchEvent()方法中监听用户手指触摸事件,根据手指移动的轨迹绘制水彩画笔的效果。 4. 使用Bitmap在内存中保存绘制的内容,并将其显示在屏幕上。 以下是一个简单的实现示例: ```java public class WaterColorView extends View { private Path mPath; private Paint mPaint; private Bitmap mBitmap; private Canvas mCanvas; public WaterColorView(Context context, AttributeSet attrs) { super(context, attrs); mPath = new Path(); mPaint = new Paint(); mPaint.setColor(Color.BLUE); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(10); mPaint.setAntiAlias(true); mPaint.setDither(true); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeCap(Paint.Cap.ROUND); mBitmap = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mBitmap); } @Override protected void onDraw(Canvas canvas) { canvas.drawBitmap(mBitmap, 0, 0, null); canvas.drawPath(mPath, mPaint); } @Override public boolean onTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mPath.moveTo(x, y); break; case MotionEvent.ACTION_MOVE: mPath.lineTo(x, y); mCanvas.drawPath(mPath, mPaint); invalidate(); break; case MotionEvent.ACTION_UP: mPath.reset(); break; } return true; } } ``` 在这个示例中,我们创建了一个自定义View,使用mPath和mPaint对象实现绘制水彩画笔的效果,使用mBitmap和mCanvas对象保存和绘制内容。在onTouchEvent()方法中监听用户手指触摸事件,并根据手指移动的轨迹绘制水彩画笔的效果。最后使用onDraw()方法将绘制的内容显示在屏幕上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值