HTML5 Canvas 画纸飞机组件
纸飞机模拟一个物体在规定设计轴线偏离方位。
//三角形
function DrawTriangle(canvas, A, B, C) {
//画个三角形,“A、B、C”是顶点
with (canvas) {
moveTo(A[0], A[1]);
lineTo(B[0], B[1]);
lineTo(C[0], C[1]);
lineTo(A[0], A[1]);
}
} // 画纸飞机
//headx,heady 纸飞机头坐标
//footx,footy 纸飞机尾巴坐标
function DrawDarts(canvas, headx, heady, footx, footy) {
var c = document.getElementById(canvas);
var cxt = c.getContext("2d"); //半径 R
var R = 150; //转换头坐标
var headx1 = R + headx;
var heady1 = R - heady;
//转换尾坐标
var footx1 = R + footx;
var footy1 = R - footy; //左尾
var footxl = R + (footx - 50);
var footyl = R - footy; //右尾
var footxr = R + (footx + 50);
var footyr = R - footy; //上尾
var footxu = R + footx;
var footyu = R - (footy - 50); //下尾
var footxd = R + footx;
var footyd = R - (footy + 50); //判断头x和尾x的大小
cxt.beginPath();
cxt.strokeStyle = "black";
cxt.fillStyle = "#6C8D9F";
var A = new Array(headx1, heady1);
var B = new Array(footx1, footy1);
// alert(headx1);
// alert(footx1);
if (parseInt(headx1) - parseInt(footx1) <= 0)
var C = new Array(footxr, footyr);
else
var C = new Array(footxl, footyl);
DrawTriangle(cxt, A, B, C); cxt.fill();
cxt.closePath();
cxt.stroke(); //画头、上、下尾巴 形成的三角形
cxt.beginPath();
cxt.strokeStyle = "black";
cxt.fillStyle = "#6C8D9F";
var A1 = new Array(headx1, heady1);
var B1 = new Array(footxu, footyu);
var C1 = new Array(footxd, footyd);
DrawTriangle(cxt, A1, B1, C1);
cxt.fill();
cxt.closePath();
cxt.stroke(); cxt.beginPath();
cxt.strokeStyle = "black";
cxt.fillStyle = "#6C8D9F";
var A2 = new Array(headx1, heady1);
var B2 = new Array(footx1, footy1);
if (parseInt(headx1) - parseInt(footx1) <= 0)
var C2 = new Array(footxl, footyl);
else
var C2 = new Array(footxr, footyr);
DrawTriangle(cxt, A2, B2, C2);
cxt.fill();
cxt.closePath();
cxt.stroke();
}
html 页面调用
<!DOCTYPE HTML>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HTML Canvas 画纸飞机</title>
<script type="text/javascript" src="Darts.js"></script>
</head>
<body>
<canvas id="can" width="300" height="300" style="border: 1px solid #00F">浏览器不支持HTML5!</canvas>
<script type="text/javascript" charset="utf-8">
DrawDarts("can", -10, 10, 30, -30)
</script>
</body>
</html>
预览效果图

效果图2:

HTML5 Canvas 画纸飞机组件的更多相关文章
- HTML5 Canvas 画虚线组件
前段时间由于项目需要,用到了HTML5 Canvas画图,但是没有画虚线的方法,自己写了一个HTML5 画虚线的组件. dashedLine.js if (window.CanvasRendering ...
- 基于 HTML5 Canvas 的拓扑组件开发
在现在前端圈大行其道的 React 和 Vue 中,可复用的组件可能是他们大受欢迎的原因之一, 在 HT 的产品中也有组件的概念,不过在 HT 中组件的开发是依托于 HTML5 Canvas 的技术去 ...
- 基于 HTML5 Canvas 的拓扑组件 ToolTip 应用
前言 ToolTip 效果是网页制作中常见的使用特效.当用户将鼠标悬浮在某个控件上时,ToolTip 显示并向用户展示相应的提示信息:当鼠标离开时,ToolTip 隐藏.一般情况下,我们使用 Tool ...
- 前端特效demo | 值得收藏的6个 HTML5 Canvas 实用案例
HTML5 动画在Canvas 上得到了充分的发挥,我们 VIP 视频也分享过很多相关的动画特效制作视频,这次给大家带来 6 款超炫酷的HTML5 canvas 动画的 demo,一起来看看吧~ 文内 ...
- jTopo HTML5 Canvas 画图组件
jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包. jTopo关注于数据的图形展示,它是面 ...
- HTML5 Canvas 画图组件 All In One
HTML5 Canvas 画图组件 All In One Canvas SVG Canvas + SVG refs https://www.infoq.cn/article/1BVg9VDSmqyHv ...
- HTML5 程序设计 - 使用HTML5 Canvas API
请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
- html5 Canvas API
详细内容请点击 1.HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现C ...
- HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)
HTML5 Canvas自定义圆角矩形与虚线(RoundedRectangle and Dash Line) 实现向HTML Canvas 2d context绘制对象中添加自定义的函数功能演示,如何 ...
随机推荐
- Kafka配置说明
Broker Configs Property Default Description broker.id 每个broker都可以用一个唯一的非负整数id进行标识:这个id可以作为broker的 ...
- requireJs压缩合并路径问题
描述 随着前端开发的重要性,以及业务的复杂性,前端的模块化开发也被大众所接收,最常见的js框架requireJs,一个js文件对应一个模块,方便开发人员调试与维护,但是一个文件对应一个模块增加了htt ...
- Java压缩包解压到指定文件
在获得一个以Zip格式压缩的文件之后,需要将其进行解压缩,还原成压缩前的文件.若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Wi ...
- mongodb 初学 目录
mongodb 初学 索引 啦啦啦 MongoDB 教程 NoSQL 简介 MongoDB 简介 Windows 平台安装 MongoDB Linux平台安装MongoDB mongodb 在 Ubu ...
- cocos2dx 3.0 scrollview 在android下面背景變綠色了
在windows上面跑的是OK的, 在android下面跑的時候就變成這樣子了:
- 【ArcGIS】WebAdaptorIIS 安装前准备及配置Portal For ArcGIS的问题解决
1.计算机全名配置 2.IIS-服务器证书配置 3.端口绑定 备注:配置Portal For ArcGIS总会提示计算机域名.全名错误.完全限定域名,可能就是没有进行第一步操作 4.Portal目录
- VS2017编译Poco1.9.0的64版本
需要先准备好OpenSSL1.0.2 下载poco-poco-1.9.0-release.zip,解压,修改buildwin.cmd中的OPENSSL_DIR路径,特别注意OPENSSL_LIB的路径 ...
- CMD打开模拟器
CMD-> CD d:\android\android-sdk-151\tools-> (这里的路径是你emulator.exe所在的路径) emulator -avd avdname-& ...
- sine曲线向前运动
using UnityEngine; using System.Collections; public class sineWork : MonoBehaviour { float verticalS ...
- Elasticsearch 5.x 关于term query和match query的认识
http://blog.csdn.net/yangwenbo214/article/details/54142786 一.基本情况 前言:term query和match query牵扯的东西比较多, ...