C语言Arc函数画圆弧,用Canvas的arc函数绘制圆和图形
Canvas没有circle函数来画一个圆。在Canvas绘图API中,提供了一个函数来绘制不同的弧,包括圆。arc函数可接受以下参数,具体说明参见表
把角度转换为弧度
arc函数使用的angle参数指的是radian(弧度)而不是degree(角度)。如果原来习惯于使用角度,那么就需要在把angle参数值传入arc函数之前将角度值转换成弧度值。可以用下面的公式来转换角度单位:
Radians = π/180 X degrees
下图用角度和弧度两种单位显示了一些常用的角度值。在Canvas中绘制圆弧时,该图指明了角度值的位置,还能帮助我们很容易地选择起点角度与终点角度参数
用arc函数绘制不同的圆弧
var canvas = document.getElementById('game');
var ctx = canvas.getContext('2d');
ctx.filSytle = "rgba(200,200,100,0.6)";
//绘制下半圆
ctx.beginPath();
ctx.arc(100,110,50,0,Math.PI);
ctx.closePath();
ctx.fill();
//绘制上半圆
ctx.beginPath();
ctx.arc(100,90,50,0,Math.PI,true);
ctx.closePath();
ctx.fill();
//绘制左半圆
ctx.beginPath();
ctx.arc(230,100,50, Math.PI/2,Math.PI*3/2);
ctx.closePath();
ctx.fill();
//绘制右半圆
ctx.beginPath();
ctx.arc(250, 100, 50 , Math.PI*3/2, Math.PI/2);
ctx.closePath();
ctx.fill();
// 绘制一个接近于圆的形状
ctx.beginPath();
ctx.arc(180, 240, 50 , Math.PI*7/6, Math.PI*2/3);
ctx.closePath();
ctx.fill();
// 绘制一段小圆弧
ctx.beginPath();
ctx.arc(150, 250, 50 , Math.PI*7/6, Math.PI*2/3, true);
ctx.closePath();
ctx.fill();
我们已经在arc函数中使用不同startAngle和endAngle参数来绘制6个不同的圆弧形状。这些圆弧形状演示了arc函数是如何工作的。
让我们回头看一下角度与弧度之间的关系并关注于上半圆,上半圆开始于角度0并结束于角度π,并从逆时针方向绘制圆弧。如果我们看一下圆,它看起就下图这样的图形。
如果需要从210°开始到120°结束,顺时钟进行绘制,将会得到如下图所示的圆弧
将画圆功能封装成函数
将原来用来画圆的代码放到一个函数中,然后使用for循环在Canvas上随机绘制出5个圆
function drawCircle(ctx, x, y, radius) {
ctx.fillStyle = "rgba(200, 200, 100, .9)";
ctx.beginPath();
ctx.arc(x, y, radius, 0, Math.PI*2, true);
ctx.closePath();
ctx.fill();
}
$(function(){
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
var circleRadius = 10;
var width = canvas.width;
var height = canvas.height;
// random 5 circles
var circlesCount = 5;
for (var i=0;i
var x = Math.random()*width;
var y = Math.random()*height;
drawCircle(ctx, x, y, circleRadius);
}
});
在JavaScript中,可以使用Math.random()函数生成随机数。
random函数没有参数。它总是返回0~1之间的一个浮点数,这个数大于等于0且小于1。
有两种常用的方式来使用random函数。一种是在给定范围内生成随机数。另一种是生成true或false布尔值
C语言Arc函数画圆弧,用Canvas的arc函数绘制圆和图形相关推荐
- 圆弧的函数c语言,VC++中Arc函数画圆弧
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:VC++中Arc函数画圆弧回答:BOOL Arc(int x1,int y1,int x2,int y2,int x3,int y3 ...
- php网页画线,HTML5 canvas基本绘图之绘制线条
是HTML5中新增的标签,用于绘制图形,这篇文章主要为大家详细介绍了HTML5 canvas基本绘图之绘制线条方法,感兴趣的小伙伴们可以参考一下 是HTML5中新增的标签,用于绘制图形,实际上,这个标 ...
- matlab一直系统函数画脉冲响应,MATLAB之使用 impz 函数计算并画出脉冲响应
EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x ' C" [+ n1 g# Q- ]" A这篇在于讨论 impz 函数的使用. |9 u8 v8 }& ...
- 用python函数画德国国旗代码_用Python绘制一面国旗
import turtle as tu tu.hideturtle() #隐藏海龟 tu.speed(10) tu.title("Chinese National Flag.") ...
- python画二维图_使用python绘制二维图形示例
我就废话不多说了,直接上代码吧! import matplotlib.pyplot as plt #也可以使用 import pylab as pl import matplotlib.font_ma ...
- Canvas学习:绘制圆和圆弧
圆和圆弧是图形中基本图形之一,今天我们来了解在Canvas中怎么绘制圆和圆弧.在Canvas中绘制圆和圆弧其实和绘制线段和矩形一样的简单.在Canvas中,CanvasRenderingContext ...
- php画圆盘,用Canvas画个圆盘
需求的来源通常是工作,这次要完成功能核心是一个向量图,嗯...其实就是一个定制化的仪表盘,换做平时一个上午就能搞定,只要数据给到顺手测试了就交货,但这次却有些不一样,这次要完成的,是一个微信小程序.嗯 ...
- C# 已知圆心和两点,用DrawArc()画圆弧(算法)
(本文转载自)http://www.cnblogs.com/stalwart/archive/2010/12/06/1897636.html 如题,已经知道圆心和两点,画出两点间的圆弧,思路,先分别求 ...
- matlab中应用surf函数画球形物体的三维坐标变换,从球坐标系转换到笛卡尔坐标系
在Matlab中采用surf函数画三维图时,该函数使用笛卡尔坐标系绘制图形,因此在某些球形图案的绘制中,直接使用(theta,phi,z)参数无法得到球形图案,需要将图案对应的点从球坐标转变为笛卡尔坐 ...
最新文章
- App项目实战之路(二):API篇
- 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java
- 面试官:知道时间轮算法吗?在Netty和Kafka中如何应用的?
- CSDN在文章头部添加目录
- web_安全_文件上传漏洞
- 同时启动多个Tomcat 和 Linux部署多个tomcat
- 学习环境配置:Manjaro、MSYS2以及常见软件
- iOS 系统级别录屏方式调研
- python 类创建
- 清北学堂2019.5.3
- 程序员如何探索新技术
- 计算机旅游网站毕业论文,旅游网站的设计与实现(毕业论文)
- 【C语言】【MPI】MPI编程入门详解
- 再读王垠的《编程的智慧》,有怎样的感想?
- oracle的floor用法,PLSQL FLOOR用法及代码示例
- mr time android 最新版,MR.TIME MAKER for Android Wear
- 鄂尔多斯人速看!除了放假通知,还有这几件大事正式执行!
- 用三国演义解读:责任链模式
- java.util.Arrays工具类的使用
- 火山安卓分割文本的使用
热门文章
- 从奶农倒奶看中国经济发展
- 破解索尼PS4系列:用户代码执行(二)
- [wp7软件]wp7~~各种视频播放器下载大全
- 优化命令之vmstat——监控虚拟内存、进程、cpu
- 计算机一级自动筛选怎么做,Excel自动筛选小技巧
- mysql函数在where后使用_【MYSQL函数】MYSQL中IF函数在where中的使用
- 记录一下Java访问https服务出现的异常情况
- 深圳物联网培训:要想成为一名物联网工程师,需要学习哪些知识?
- 简道云教学 | 零代码应用开发软件助力应用型高校学生创新能力培养
- Blog5 无监督深度关键短语生成——关键代码分析3