- drawImage绘图未按照translate中心点绘图
translate中心点 我是用小程序的canvas的fillRect等绘图时,图按照translate中心点进行绘图,但是在使用drawimage绘图时,他却按照左上角的的原点进行绘图, 请问为什么? 相关代码如下 builditem,为一个方块,areaX为x坐标,areaWidth为宽度, [代码]minPoint.x = buildItem.areaX + buildItem.areaWidth / 2 - canvas.width / 2;[代码][代码]minPoint.y = buildItem.areaY + buildItem.areaHeight / 2 - canvas.height / 2;[代码]我想设置手机中心点为坐标原点,即:(canvas.width/2, canvas.height/2) 但是我在drawImage里传入的却是: [代码]minPoint.x = buildItem.areaX + buildItem.areaWidth / 2;[代码][代码]minPoint.y = buildItem.areaY + buildItem.areaHeight / 2;[代码]即按照左上角为中心的坐标原点。 ctx.drawImage(endPointIcon, minPoint.x, minPoint.y); 按照后者的坐标值,他在画布上标注位置正常, 但是按照前者坐标值,他会超出画布边界,在左上区域
2018-09-26 - setTransform与translate中心位置问题
setTransform利用偏移量对图进行移动,但是他的中心点仍然是canvas画布发生变动之前的坐标原点, translate是修改坐标原点, 但是两个api一起用,则坐标原点总是settransform的坐标原点,且在其后使用rotate旋转时,无法修改为translate的坐标原点,只能是setTransform坐标原点!!!!!
2018-09-05 - 开发者工具联网失败
- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 电脑可以上网,但是开发者工具不能登录,也不能测试 - 复现路径 - 提供一个最简复现 Demo
2018-09-05 - setTransorm中心点为左上角,且无法修改
- 需求的场景描述(希望解决的问题) 使用canvas实现地图功能,在设置translate中心点后旋转问题解决,但是因为坐标系中心点发生变动,导致使用transform、setTransform放大缩小地图,因为其坐标原点为左上角,切无法修改 ,导致计算复杂,需要进行双坐标系换算。 - 希望提供的能力 希望在transform、settransform中在多提供一个中心点坐标参数 [代码]canvasContext.setTransform(scaleX, skewX, skewY, scaleY, translateX, translateY, centerPointX, centerPontY)[代码]
2018-09-04 - 持续调用Animation.translateY在真机上出现卡顿
之前使用scroll-view实现组件内部的滚动,但是因为canvas导致不得不使用cover-view,但是cover-view中不支持scroll-view,所以只能手写组件内部上下滚动,主要是解决手指上下拖动其内容。 但是因为监听touchmove导致不断更新Animation.translateY,在真机上测试出现非常严重的卡顿,到了无法忍受的地步, 代码略丑,如有想法可以提出 [代码]flootTouchStart: [代码][代码]function[代码][代码](e){[代码][代码] [代码][代码]// console.log(e.touches[0].clientY)[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]floorTouchStart: e.touches[0][代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]flootTouchMove: [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]// const flootTouchStartX = this.data.floorTouchStart.clinetX;[代码][代码] [代码][代码]const flootTouchStartY = [代码][代码]this[代码][代码].data.floorTouchStart.clientY;[代码][代码] [代码][代码]// console.log(flootTouchStartY);[代码] [代码] [代码][代码]// const flootMoveX = e.touches[0].clinetX;[代码][代码] [代码][代码]const floorMoveY = e.touches[0].clientY;[代码] [代码] [代码][代码]let curMove = floorMoveY - flootTouchStartY;[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]floorTouchStart: e.touches[0][代码][代码] [代码][代码]})[代码][代码] [代码] [代码] [代码][代码]if[代码] [代码]([代码][代码]this[代码][代码].data.floorList.length > 5 ) {[代码][代码] [代码] [代码] [代码][代码]if[代码] [代码]([代码][代码]this[代码][代码].data.floorMove > -([代码][代码]this[代码][代码].data.floorList.length - 5) * 32 && curMove < 0 ) { [代码][代码]// 向下滚[代码][代码] [代码] [代码] [代码][代码]// console.log(curMove);[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]floorMove: curMove + [代码][代码]this[代码][代码].data.floorMove[代码][代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]if[代码] [代码]([代码][代码]this[代码][代码].data.floorMove < 0 && curMove > 0) { [代码][代码]// 向上滚[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]floorMove: curMove + [代码][代码]this[代码][代码].data.floorMove[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]console.log([代码][代码]'xx'[代码] [代码]+ curMove)[代码][代码] [代码][代码]this[代码][代码].floorAnimation.translateY([代码][代码]this[代码][代码].data.floorMove).step()[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]floorAnimationData: [代码][代码]this[代码][代码].floorAnimation.export()[代码][代码] [代码][代码]})[代码][代码] [代码] [代码] [代码][代码]},[代码][代码]// index.wxml[代码][代码]<[代码][代码]cover-view[代码] [代码]class[代码][代码]=[代码][代码]'chooseFloor'[代码] [代码]wx:if[代码][代码]=[代码][代码]"{{chooseFloorShow}}"[代码] [代码]catchtouchstart[代码][代码]=[代码][代码]'flootTouchStart'[代码] [代码]catchtouchmove[代码][代码]=[代码][代码]'flootTouchMove'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]cover-view[代码] [代码]animation[代码][代码]=[代码][代码]"{{floorAnimationData}}"[代码] [代码]class[代码][代码]=[代码][代码]'inner-container'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]cover-view[代码][代码] [代码][代码]wx:for[代码][代码]=[代码][代码]"{{floorList}}"[代码][代码] [代码][代码]wx:key[代码][代码]=[代码][代码]"{{index}}"[代码][代码] [代码][代码]data-num[代码][代码]=[代码][代码]"{{index}}"[代码][代码] [代码][代码]class[代码][代码]=[代码][代码]'floorItem {{curFloor == item?"curfloor": ""}}'[代码][代码] [代码][代码]bindtap[代码][代码]=[代码][代码]'confirmFloor'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]cover-view[代码][代码]>{{item}}</[代码][代码]cover-view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]cover-view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]cover-view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]cover-view[代码][代码]>[代码]
2018-08-29 - canvas实现动画
我是用canvas写出来了静态的canvas图,现在想让这些canvas图动起来,类似于h5的canvas,虽然官方库里的api给了transform,但是在实际使用时,并没有产生任何效果 使用transfrom代码如下 [图片] 其并没有什么改善 有三个问题, 1、transform如何使用? 2、如何控制整个canvas恢出的图已同等比例放大、缩小、上下左右运动,并保持画布没有变动 3、如何控制canvas绘图中的其中一个图控制其运动动作
2018-08-28