纸飞机模拟一个物体在规定设计轴线偏离方位。

 //三角形
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 画纸飞机组件的更多相关文章

  1. HTML5 Canvas 画虚线组件

    前段时间由于项目需要,用到了HTML5 Canvas画图,但是没有画虚线的方法,自己写了一个HTML5 画虚线的组件. dashedLine.js if (window.CanvasRendering ...

  2. 基于 HTML5 Canvas 的拓扑组件开发

    在现在前端圈大行其道的 React 和 Vue 中,可复用的组件可能是他们大受欢迎的原因之一, 在 HT 的产品中也有组件的概念,不过在 HT 中组件的开发是依托于 HTML5 Canvas 的技术去 ...

  3. 基于 HTML5 Canvas 的拓扑组件 ToolTip 应用

    前言 ToolTip 效果是网页制作中常见的使用特效.当用户将鼠标悬浮在某个控件上时,ToolTip 显示并向用户展示相应的提示信息:当鼠标离开时,ToolTip 隐藏.一般情况下,我们使用 Tool ...

  4. 前端特效demo | 值得收藏的6个 HTML5 Canvas 实用案例

    HTML5 动画在Canvas 上得到了充分的发挥,我们 VIP 视频也分享过很多相关的动画特效制作视频,这次给大家带来 6 款超炫酷的HTML5 canvas 动画的 demo,一起来看看吧~ 文内 ...

  5. jTopo HTML5 Canvas 画图组件

    jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包. jTopo关注于数据的图形展示,它是面 ...

  6. HTML5 Canvas 画图组件 All In One

    HTML5 Canvas 画图组件 All In One Canvas SVG Canvas + SVG refs https://www.infoq.cn/article/1BVg9VDSmqyHv ...

  7. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  8. html5 Canvas API

    详细内容请点击 1.HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现C ...

  9. HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)

    HTML5 Canvas自定义圆角矩形与虚线(RoundedRectangle and Dash Line) 实现向HTML Canvas 2d context绘制对象中添加自定义的函数功能演示,如何 ...

随机推荐

  1. UTF8与std:string互转

    Ajax请求发送的UTF8编码字符串传到后台使用std:string进一步处理,如果包含中文会出现中文乱码的问题: 特找了一下转码的解决方法,直接代码如下:  C++ Code  1234567891 ...

  2. cmd.exe启动参数详解

    https://blog.csdn.net/moonhillcity/article/details/53039763 各个系统中打开文件的命令 "windows系统: cmd " ...

  3. 【scala】scala 数组 (三)

    基础内容 1. 数组定义 定长.可变数组的定义;元素添加,删除,排序,求和等常用运算 import scala.collection.mutable.ArrayBuffer import scala. ...

  4. 基于NDK的Android防破解& Android防破解 【转载】

    两篇防破解文章转载 基于NDK的Android防破解:http://blog.csdn.net/bugrunner/article/details/8634585 Android防破解:http:// ...

  5. logback -- 配置详解 -- 三 -- <encoder>

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  6. SpringMVC -- 梗概--源码--贰--异常管理

    附:实体类 Class : User package com.c61.entity; import java.text.SimpleDateFormat; import java.util.Date; ...

  7. 8 -- 深入使用Spring -- 4... Spring的AOP

    8.4 Spring的AOP AOP(Aspect Orient Programming),也就是面向切面编程,最为面向对象编程的一种补充. AOP和OOP互为补充,面向对象编程将程序分解成各个层次的 ...

  8. Javascript生成GUID算法

    var GUID = { date: new Date(), /* 生成GUID码 */ newGUID: function () { this.date = new Date(); var guid ...

  9. 今天被坑了,而且被坑的好爽! 该死的UTF-8 有 BOM 格式编码

    调一个项目,最后无法登录了. 排查到最后发现是cookie无法保存会话ID, 工作两年的经验这时候没用上. 开始一以为是PHP.ini的配置错了. 考虑过域名,浏览器问题. 脚本BUG. 最后最后一步 ...

  10. WPF中的命令与命令绑定导航

    1.WPF中的命令与命令绑定(一) (引入命令) 2.WPF中的命令与命令绑定(二)(详细介绍命令和命令绑定)