AxeSlide软件项目梳理   canvas绘图系列知识点整理 html5中标签canvas,函数drawImage(): 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本.参数传递三种形式: 1)drawImage(image,x,y):在canvas中(x,y)处绘制图片. 2)drawImage(image,x,y,width,height):在canvas中(x,y)处绘制图片,并将其缩放到指定的宽度和高度. 3)drawImage(image,sourceX…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描述 translate dx,dx 转换的量的 X 和 Y 大小 scale sx,sy 水平和垂直的缩放因子 rotate angle 旋转的量,用弧度表示.正值表示顺时针方向旋转,负值表示逆时针方向旋转. setTransform…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 默认坐标系与当前坐标系 canvas中的坐标是从左上角开始的,x轴沿着水平方向(按像素)向右延伸,y轴沿垂直方向向下延伸.左上角坐标为x=0,y=0的点称作原点.在默认坐标系中,每一个点的坐标都是直接映射到一个CSS像素上. 但是如果图像的每次绘制都参考一个固定点将缺少灵活性,于是在canvas中引入“当前坐标系”的概念,所谓“当前坐标系”即指图像在此时绘制的时候所参考的坐标系,它也会作为图像状态的一部分.比如rotate旋转操作…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 前言 在我的另一篇博文 Canvas坐标系转换 中,我们知道了所有的平移缩放旋转操作都会影响到画布坐标系.那在我们对画布进行了一系列操作之后,怎么再知道当前矩阵数据状态呢. 具体代码 首先请看下面的一段代码(下文具体解释代码作用): window.TrackTransform = function () { var svg = document.createElementNS("http://www.w3.org/2000/svg…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 我们创建一个类封装了所有鼠标需要处理的事件. export class MouseEventInfo { el: HTMLElement; onmouseDown: Function; ondragMove: Function; ondragUp: Function; onmouseMove: Function; onmouseUp: Function; mouseWheel: Function; onContextMenu: F…
在学习 html5中的 Canvas.drawImage时写了如下代码: <!doctype html> <html> <head><title>研究</title></head> <body> <canvas id="canvas" style="width:500px;height:400px; border:1px solid red"></canvas>…
在使用Canvas的drawImage绘制图片时,却发现绘制不出图片,原因是图片是异步加载,图片加载完再绘制. //html <img src="1.png" /> <canvas id="draw"></canvas> //js var Image = document.images[0]; var draw = document.getElementById('draw'); var context = draw.getCon…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 图形种类 目前我们软件可以绘制出来的形状有如下这几种,作为开发者我们一直想支持用户可以拖拽的类似word里面图形库,但目前还没有找到比较合适的库. 下图中所有的图形都是我们自己写代码在canvas上绘制方法出来的,可以改变实心/空心,改变颜色,大小宽高,线条弯曲度,透明度等. 父类shape类 实现的代码如下:所有的图形均继承自shape类,而shape类继承自CommonElement,shape中的所有图形添加到画布上都是一个…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 grid类的实现 当鼠标在画布上缩放时,网格能跟着我的鼠标滚动而相应的有放大缩小的效果. 下面是具体实现的代码,draw函数里计算出大网格每条线的间隔和小网格线的间隔,以及大网格和小网格绘制所用的颜色. 具体的实现算法也是参照另外一个软件用到的,但是我们改进了很多,例如控制只将当前画面显示出来的线条绘制出来 draw() { var scale = (editor && editor.canvas && ed…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 软件参考d3的知识点 我们在软件中主要用到d3.js的核心函数d3.interpolateZoom - 在两个点之间平滑地缩放平移.请查看示例,效果如下平滑的缩放平移. 实现该效果使用d3的js代码 var width = 960, height = 500, radius = 10; var p0 = [250, 200, 60], p1 = [560, 300, 120]; var svg = d3.select("body&…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 背景介绍 我们的软件支持插入gif图片,并且展示在软件里是动态的,例如插入下面这张gif图. 在软件里显示的同样是这样的动态效果: 那么这张动态的图是怎么绘制到canvas上面的呢,如果只是像绘制一张普通图片用context.drawImage(img,x,y),这样绘制出来的只是当前显示到img标签的一个静态画面. 下面介绍我们项目中使用的方法: 1. 解析gif文件信息 安装Node.js的gify-parse模块,该模块用于…
AxeSlide软件项目梳理   canvas绘图系列知识点整理 Tween算法及缓动效果 软件里在切换步序时需要有过渡动画效果,从当前位置的画面缓动到目标位置的画面.动画效果可重新查看文章系列第一篇<AxeSlide软件项目梳理>中的作品展示动画. 实例效果:   Tween类型: Linear Quadratic Cubic Quartic Quintic Sinusoidal Exponential Circular Elastic Back Bounce ease类型: easeIn…
canvas性能-绘制图片 目录 canvas性能-绘制图片 canvas绘制图片 drawImage putImageData createPattern 测试绘制耗时 drawImage Image类型 ImageBitmap类型 HTMLCanvasElement类型 putImageData 结论 canvas绘制图片 一般我们绘制图片会用到的方法是drawImage和putImageData,还有作为测试环境使用的createPattern drawImage 描述: 使用方式: ct…
1.基本的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置 drawBitmap(Bitmap bitmap, float left, float top, Paint paint) 2.对图片剪接和限定显示区域 drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint): Rect src: 是对图片进行裁截,若是空null则显示整个图片 RectF dst:是图片在Canvas画布中显示的…
1.主要的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置     drawBitmap(Bitmap bitmap, float left, float top, Paint paint) 2.对图片剪接和限定显示区域 drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint): Rect src: 是对图片进行裁截,若是空null则显示整个图片 RectF dst:是图片在Canvas画布…
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("tulip"); ctx.drawImage(img,10,10,200,200); 学习canvas时,发现当在Chrome和Opera中运行上面代码是,画布中并不能显示出相应的图片,后来通过查询才明白,图片加载是异步加载,当调用draw…
context.drawImage(img,x,y)  x,y图像起始坐标 context.drawImage(img,x,y,w,h) w,h指定图像的宽度和高度 context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh) s被复制区域  d复制后 理解了其实挺简单的!就是不知道用用到多少? <!DOCTYPE html><html> <head> <meta charset="utf-8"> <…
废话不多说,直接上代码 其中图片地址换成你的,自己玩儿去吧 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div#a { width: 1105px; height: 500px; margin: 0 auto; border: 0px soli…
ImageAttributes ImgAtt = new ImageAttributes(); ;                 ImgAtt.SetWrapMode(System.Drawing.Drawing2D.WrapMode.TileFlipXY); m_graphics.DrawImage(image, new System.Drawing.Rectangle((int)(x - width / 2 + backBmp1.Width), (int)(y - pixel + 1),…
先介绍一下我负责的软件项目 AxeSlide斧子演示,估计大部分人没有听说过,但国外有一款叫Prezi的软件,应该有一部分人使用过. 这是我们产品的官网http://www.axeslide.com/,里面有很多用户上传的作品看过一个之后就知道这个软件具体的作用了. 下面这个gif的效果就是用软件做出来的,非常简单哦! 这是我们软件的页面,目前是没有做任何操作的界面. 我2014年5月初来到现在这家公司后才开始研发的这个产品,经过将近3年的时间,从无到有,用户量从0到500,000. 但是由于某…
不得不说,html5中的canvas真的非常强大,从图片处理,到视频处理,再到游戏开发,都能见到canvas的身影,然而,就这一个<canvas>标签,功能居然如此强大,这主要归功于canvas强大的API,也正是因为这么多的API,让很多人对canvas望而却步. drawImage绘制图片 drawImage是canvas提供的一个方法,通过这个函数我们可以把一张图片绘制到canvas中.首先看看这个方法的声明: void ctx.drawImage(image, dx, dy); voi…
"canvas画布仿window系统自带画图软件"项目的思考 首先贴上DEMO图,并没有美化效果.对UI有要求的,请自带补脑技术. 思考一 在做项目的过程中,我发现"工具栏","形状栏"中有些功能都需要对canvas元素同时使用onmousedown, onmousemove, onmouseup事件.然后我就使用兼容性添加事件的代码给每个功能添加这几个事件.兼容性代码如下: //添加事件方法 function addEvents(obj, ty…
html5中标签canvas,函数drawImage(): 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本.参数传递三种形式: drawImage(image,x,y):在canvas中(x,y)处绘制图片. drawImage(image,x,y,width,height):在canvas中(x,y)处绘制图片,并将其缩放到指定的宽度和高度. drawImage(image,sourceX,sourceY,sourceWidth,sourceHeight,x,y,w…
这段时间闲来无事,就在总结以前的项目经验,然后写成博客的形式以进行记录.本文就对<IT软件人员学习系列文章>做个开篇吧. 对于IT软件的开发来说,无外乎B/S.C/S和Android.iOS(后两项也是C/S).在B/S领域,无外乎PHP.JAVA和ASP.NET这几大阵营.而在C/S领域,JAVA的开发比较复杂,需要编写一些重复的和底层的代码,相比C#的可视化和相似的语法,还是微软的开发工具和语言比较容易上手. 但是,我们今天讲的不是代码,而是整个软件流程,这个属于软件工程的范畴.我们知道,…
本文摘自:http://www.job168.com/info/read_100394.html 微软的许多技术,如OLE.ActiveX.以及DirectX等都是基于COM技术而建立起来的.微软本身也大量地使用COM组件来定制他们的应用程序及操作系统.那么,什么是COM呢? 所谓COM即“组件对象模型”,是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准.通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同.使…
规范化的软件项目演进管理 从 Github 使用说起 1   前言 首先,本文的层次定位是:很基本很基础的 Github 工具的入门级应用,写给入门级的用户看的. 基本上工作过几年的人,下面描述的这些技能和思想,都应该被打磨成了一种习惯,或者说是标配的属性了吧,已经不齿于列为 技能 了.但是因为笔者也菜鸟过,在学习这些技能,接受这些思想和培养这些习惯时走过不少弯路,同时也浪费了不少时间,所以想把这些经验和教训写下来,给后来人学习时提供一点参考意见吧. 关于为什么要学会用 Github ,先用最朴…
Atitit 软件项目非法模块与功能的管理与  监狱管理的对比 原理与概论attilax总结 软件项目中的非法模块非法功能非法分子与人类中的非法分子很是相似,必须要建议不同的的约束管理标准化... 软件项目中的不良代码类 就是软件社会中的坏人,有必要建立必要的隔离制度..防止坏蛋扩散传播.. 主要讲了这个约束机制的建立与维护制度 1. 理性管理--理念决定未来( 理性管理是约束管理的理念 制度化规范化是基本框架 2. 方向决定成败 大局观管理 3. 依法管理(依靠spec管理,接口技术就是软件中…
续:软件项目量化管理(CMMI高成熟度)实践经验谈--之概述篇 二.项目管理过程 软件开发项目管理过程,从项目全视角来看,分为售前.售中.售后等三个大的阶段.本文所谈的是售中阶段项目管理过程,在售中阶段,项目管理主要分项目策划.项目跟踪监控.项目结项归档等三部分.相关活动包含销售活动.採购活动.资源活动.支持活动等. 1.项目策划 项目策划是一种具有建设性.逻辑性的思维的过程,在此过程中,总的目的就是把全部可能影响决策的决定总结起来,对未来起到指导和控制作用,终于借以达到方案目标. 它是一门新兴…
刚看完“无问西东”,电影里说人总归还是要留下些足迹(文字)的,那么赶紧跑图书馆来留下些文字. 最近去瑞士启动了一个新的项目,那么早上做项目,晚上总结留下了一张张思维导图来记录当时的感受, 手稿如下,字写得不好请见谅:) 首先你得知道这个软件写出来是做什么的,因为不同的应用场景对软件要求是千差万别的. 例如,机械控制?那可能需要实时性高:订票系统?那需要并发性好,还有数据准确性要高:购物系统?简单,好看,好用,操作不反人类...... 所以第一重要的东西就是,Domian Knowledge领域知…
layout: post title: 2018-05-17-OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路 key: 20180517 tags: OAA flow chart sequence diagram 泳道图 时序图 图表 OAA PM Master modify_date: 05-17 --- OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路 说明: 本文发布于: gitee,github,博客园 转载和引用请指明原作者和连接及出处. 正文: 说明:这…