canvas 添加线和删除线 及获取相关位置信息源码
其他相关链接:
https://github.com/lusase/lineDrawer.git
https://www.jb51.net/css/359062.html
https://www.jb51.net/css/359062.html
markCanvasHandler(color, data) {
let canvas = document.getElementById("canvas_zhumianban");
if(canvas) {
let cxt = canvas.getContext("2d");;
// 设置宽高
canvas.width = this.winWidth
canvas.height = this.winHeight
cxt.strokeStyle = "" + color + "";
cxt.lineWidth = 2;
cxt.beginPath();
console.log(cxt)
data.forEach((item) => {
item.dots.forEach((dot, idx) => {
let left = parseInt(dot[0] * 100);
let top = parseInt(dot[1] * 100);
if(idx === 0) {
console.log('if', idx, left, top)
cxt.moveTo(left, top);
} else {
console.log('else', idx, left, top)
cxt.lineTo(left, top);
cxt.fill();
cxt.stroke();
}
})
})
}
formateMark(x, y) {
let obj = {}
let left = parseInt(x / this.winWidth * 100) + '%'
let top = parseInt(y / this.winHeight * 100) + '%'
return obj = {
left: left,
top: top
}
},
// 添加标记
addMark(e) {
let left = parseInt(e.clientX / this.winWidth * 100) + '%'
let top = parseInt(e.clientY / this.winHeight * 100) + '%' let obj = {
left: left,
top: top
}
this.arr.push(obj)
},
let canvas = document.getElementById("canvas_zhumianban");
let cxt = canvas.getContext("2d");
cxt.beginPath();
canvas.onmousedown = function(ev) {
var ev = ev || window.event;
cxt.moveTo(ev.clientX - canvas.offsetLeft, ev.clientY - canvas.offsetTop);
document.onmousemove = function(ev) {
var ev = ev || window.event;
cxt.lineTo(ev.clientX - canvas.offsetLeft, ev.clientY - canvas.offsetTop);
cxt.stroke();
};
document.onmouseup = function() {
document.onmousemove = null;
document.onmouseup = null;
};
}
canvas 添加线和删除线 及获取相关位置信息源码的更多相关文章
- CSS标题线(删除线贯穿线效果)实现之一二
缘起 其实看到这个问题,心里已经默默把代码已经码好了~,不就想下面这样嘛:JSBIN代码示例 嗯,是的,我们日常确实基本上就是用的这种方式,也没啥问题呀~,来个背景色定下位就欧拉欧拉的了. 不过,因为 ...
- 页面中插入flash,并且给flash添加单击事件控制播放,以及获取相关参数.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" hei ...
- android EditText获取光标位置并安插字符删除字符
android EditText获取光标位置并插入字符删除字符1.获取光标位置int index = editText.getSelectionStart(); 2.在光标处插入字符int index ...
- Android中TextView添加删除线
项目中的需求~~~~ 商城中物品的一个本身价格,还有一个就是优惠价格...需要用到一个删除线. public class TestActivity extends Activity { private ...
- iOS 为label添加删除线
UILabel *testLabel = [[ UILabel alloc] initWithFrame:CGRectMake(, , , )]; testLabel.numberOfLines = ...
- iOS-属性字符串添加下划线、删除线
常用到的属性字符串 ///定义属性字符串NSMutableAttributedString *att = [[NSMutableAttributedString alloc]initWithStrin ...
- ios Lable 添加删除线
遇到坑了: NSString *goodsPrice = @"230.39"; NSString *marketPrice = @"299.99"; NSStr ...
- python 对过时类或方法添加删除线的方法
class Cat(Animal): def __init__(self): import warnings warnings.warn("Cat类带删除线了", Deprecat ...
- 【转】Android TextView SpannableStringBuilder 图文混排颜色斜体粗体下划线删除线
spannableStringBuilder 用法详解: SpannableString ss = new SpannableString("红色打电话斜体删除线绿色下划线图片:." ...
随机推荐
- Mtlab:抛物型方程的交替方向隐格式(ADI)
tic; clear clc M=[,,,,]; N=M; :length(M) h=/M(p);% 这里定义空间步长等距 tau=/N(p); % 时间步长 x=:h:; y=:h:; t=:tau ...
- location.href 本窗口与window.open 新窗口打开用法
二种新窗口打开的区别: window.open("URL",'top'); 只是表示打开这个页面,并不是打开并刷新页面: window.location.href="UR ...
- vue刷新当前路由
原理:跳转到空白页,然后再快速跳回原来的页面: 1,新建一个refresh.vue页面并添加到路由,页面内容如下 <script> export default { beforeRoute ...
- leetcode 链表相关
1.给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们 ...
- linux jpg文件查找木马
find ./ -type f -name "*.jpg" | xargs grep "eval"
- Flex 弹性盒基本语法
网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...
- 使用layer的弹窗时,出现layer引入成功,触发成功,控制台无报错,但是页面无变化或者仅出现遮罩层的问题的解决思路
------------------------------------------20180410补充------------------------------------------------ ...
- PHP取凌晨时间戳
百度出来的没一个正确答案 在此纠正 strtotime('today midnight'); // 今天凌晨时间戳 strtotime('+1 day midnight'); // 明天凌晨时间戳
- [Leetcode 72]编辑距离 Edit Distance
[题目] Given two words word1 and word2, find the minimum number of operations required to convert word ...
- 正则表达式中的re.S
正则表达式中,“.”的作用是匹配除“\n”以外的任何字符,也就是说,它是在一行中进行匹配.这里的“行”是以“\n”进行区分的.a字符串有每行的末尾有一个“\n”,不过它不可见. 如果不使用re.S参数 ...