QML之控制小车运动并绘制路径
来源:互联网 发布:广西网络教育培训网 编辑:程序博客网 时间:2024/06/11 22:19
效果
知识点
- 绘图,使用Canvas进行绘图
- 图层叠加,小车运动和路径的绘制为两个图层,所以两者互不干扰
- 画布旋转,小车转向并非是将图标进行旋转而是将画布进行旋转
- 绘制图片,初始点标定是将图标绘制在图层上
- 绘制路径,将小车每次移动的轨迹用线段连接
源码
绘制小车
/*********************实时刷新小车位置图层************************/Canvas{ id: carCanvas anchors.fill: parent z: 2 onPaint: { var flushCarCtx = getContext("2d") //实时刷新小车位置点 if(isInitPointClicked) { drawPoint(flushCarCtx) } } /*********************画小车初始位置点************************/ function drawPoint(flushCarCtx) { flushCarCtx.save() flushCarCtx.reset() flushCarCtx.translate(carCurrentX, carCurrentY) if(isUp) { flushCarCtx.rotate(-Math.PI/2) } else if(isDown) { flushCarCtx.rotate(Math.PI/2) } else if(isLeft) { flushCarCtx.rotate(Math.PI) } flushCarCtx.drawImage(imgCar, -imgCar.width/2, -imgCar.height/2) flushCarCtx.restore() }}
绘制路径
/*********************用于画小车轨迹的图层************************/Canvas{ id: mapCanvas anchors.fill: parent z: 1 onPaint: { var ctx = getContext("2d") drawLine(ctx) } /*********************画路径************************/ function drawLine(ctx) { ctx.beginPath() ctx.lineWidth = 1 ctx.moveTo(carPreviousX, carPreviousY) ctx.lineTo(carCurrentX, carCurrentY) ctx.closePath() ctx.stroke() }}
代码
阅读全文
0 0
- QML之控制小车运动并绘制路径
- zrobot----------小车的运动控制
- 手机控制urdf小车模型运动(三)-手机控制小车运动
- 手绘轨迹(STM32触摸屏)控制小车运动
- STM32——小车2个步进电机运动控制
- STM32——小车2个直流电机运动控制
- QML之PathAnimation路径动画
- 【笔记】在Android上绘制小车行进路线图并标记
- Rosmin--在Android上绘制小车行进路线图并标记
- Android 运动的小车
- Wifi小车之 – 网页控制篇
- Wifi小车之 - 网页控制篇
- turtlebot启动并键盘控制运动
- iOS 之地图上绘制运动轨迹
- 利用kinnect识别语音,通过NRF24L01控制小车运动——实验课设
- STM32——使用NRF24L01无线模块遥控器与接收器指令下发控制小车运动
- 手机控制urdf小车模型运动(一)—安装indigo下的串口驱动
- 手机控制urdf小车模型运动(二)-创建简单的机器人模型
- Zookeeper在kafka中的应用
- 重温frameset、frame
- 进程间通讯——消息队列
- 【笔记】Java如何判断是IDE启动还是jar启动
- 软件安装
- QML之控制小车运动并绘制路径
- webpack+vue+vueRouter模块化构建完整项目实例详细步骤-入门篇
- java过滤器原理分析以及实现,通过过滤器实现自动登陆
- Java消息中间件学习笔记二 -- JMS规范
- 设计模式六大原则(4):接口隔离原则
- 工程师也该学习机器学习了!
- tf.contrib.layers.embed_sequence
- 58-类模版的概念与意义
- ROC曲线,AUC