创新互联百度小程序教程:CanvasContext

  • CanvasContext
    • 方法参数
    • 示例
      • 图片示例
      • 代码示例

    CanvasContext

    解释: 绘图上下文。

    方法参数

    示例

    跳转编辑工具

    在开发者工具中打开

    在 WEB IDE 中打开

    扫码体验

    代码示例

    请使用百度APP扫码

    图片示例

    代码示例

    • SWAN
    • JS
    • CSS
     
     
     
    1. 展示绘图
    • 在 canvas 文件中

    • JS

     
     
     
    1. const canvas = {};
    2. canvas.arc = function (context) {
    3. context.beginPath();
    4. context.arc(100, 75, 50, 0, 2 * Math.PI);
    5. context.setFillStyle('blue');
    6. context.fill();
    7. context.draw();
    8. };
    9. canvas.beginPath = function (context) {
    10. context.beginPath();
    11. context.setLineWidth(5);
    12. context.setStrokeStyle('#ff0000');
    13. context.moveTo(0, 75);
    14. context.lineTo(250, 75);
    15. context.stroke();
    16. context.beginPath();
    17. context.setStrokeStyle('#0000ff');
    18. context.moveTo(50, 0);
    19. context.lineTo(150, 130);
    20. context.stroke();
    21. };
    22. canvas.bezierCurveTo = function (context) {
    23. context.beginPath();
    24. context.moveTo(20, 20);
    25. context.bezierCurveTo(20, 100, 200, 100, 200, 20);
    26. context.setStrokeStyle('black');
    27. context.stroke();
    28. };
    29. canvas.clearRect = function (context) {
    30. context.setFillStyle('blue');
    31. context.fillRect(0, 0, 250, 150);
    32. context.clearRect(20, 20, 150, 75);
    33. context.draw();
    34. };
    35. canvas.clip = function (context) {
    36. context.beginPath();
    37. context.rect(50, 20, 200, 120);
    38. context.stroke();
    39. context.clip();
    40. context.fillRect(0, 0, 150, 100);
    41. };
    42. canvas.closePath = function (context) {
    43. context.beginPath();
    44. context.moveTo(20, 20);
    45. context.lineTo(20, 100);
    46. context.lineTo(70, 100);
    47. context.closePath();
    48. context.stroke();
    49. };
    50. canvas.createCircularGradient = function (context) {
    51. // Create circular gradient
    52. const grd = context.createCircularGradient(75, 50, 50);
    53. grd.addColorStop(0, 'red');
    54. grd.addColorStop(1, 'blue');
    55. // Fill with gradient
    56. context.setFillStyle(grd);
    57. context.fillRect(30, 30, 150, 80);
    58. };
    59. canvas.createLinearGradient = function (context) {
    60. const grd = context.createLinearGradient(0, 0, 200, 0);
    61. grd.addColorStop(0, 'blue');
    62. grd.addColorStop(1, 'red');
    63. // Fill with gradient
    64. context.setFillStyle(grd);
    65. context.fillRect(30, 30, 150, 80);
    66. };
    67. canvas.drawImage = function (context) {
    68. context.drawImage('https://b.bdstatic.com/searchbox/icms/searchbox/img/api_logo.png', 0, 0);
    69. };
    70. canvas.fill = function (context) {
    71. context.beginPath();
    72. context.moveTo(100, 100);
    73. context.lineTo(10, 100);
    74. context.lineTo(10, 10);
    75. context.fill();
    76. };
    77. canvas.fillRect = function (context) {
    78. context.beginPath();
    79. context.setFillStyle('blue');
    80. context.fillRect(30, 30, 150, 75);
    81. };
    82. canvas.fillText = function (context) {
    83. context.setFontSize(20);
    84. context.fillText('Hello', 20, 20);
    85. context.fillText('World', 100, 100);
    86. };
    87. canvas.font = function (context) {
    88. context.font = '50px oblique bold Microsoft YaiHei';
    89. context.fillText('微软雅黑', 90, 90);
    90. context.font = '50px 楷体';
    91. context.fillText('楷体', 90, 200);
    92. };
    93. canvas.lineTo = function (context) {
    94. context.beginPath();
    95. context.moveTo(10, 10);
    96. context.rect(10, 10, 100, 50);
    97. context.lineTo(110, 60);
    98. context.stroke();
    99. };
    100. canvas.moveTo = function (context) {
    101. context.moveTo(10, 10);
    102. context.lineTo(100, 10);
    103. context.moveTo(10, 100);
    104. context.lineTo(100, 100);
    105. context.stroke();
    106. };
    107. canvas.quadraticCurveTo = function (context) {
    108. context.beginPath();
    109. context.moveTo(20, 20);
    110. context.quadraticCurveTo(20, 100, 200, 20);
    111. context.stroke();
    112. };
    113. canvas.rect = function (context) {
    114. context.beginPath();
    115. context.rect(30, 30, 150, 75);
    116. context.stroke();
    117. };
    118. canvas.rotate = function (context) {
    119. context.beginPath();
    120. context.strokeRect(100, 10, 150, 100);
    121. context.rotate(10 * Math.PI / 180);
    122. context.strokeRect(100, 10, 150, 100);
    123. context.rotate(10 * Math.PI / 180);
    124. context.strokeRect(100, 10, 150, 100);
    125. context.fill();
    126. };
    127. canvas.saveAndRestore = function (context) {
    128. context.beginPath();
    129. context.setFillStyle('red');
    130. context.save();
    131. context.setFillStyle('blue');
    132. context.fillRect(10, 10, 150, 100);
    133. context.restore();
    134. context.fillRect(50, 50, 150, 100);
    135. context.stroke();
    136. };
    137. canvas.scale = function (context) {
    138. context.beginPath();
    139. context.rect(10, 10, 25, 15);
    140. context.stroke();
    141. context.scale(2, 2);
    142. context.beginPath();
    143. context.rect(10, 10, 25, 15);
    144. context.stroke();
    145. context.scale(2, 2);
    146. context.beginPath();
    147. context.rect(10, 10, 25, 15);
    148. context.stroke();
    149. };
    150. canvas.setFillStyle = function (context) {
    151. ['blue', '#ffff00', 'rgba(255,255,0, 0.3)'].forEach(function (item, index) {
    152. context.setFillStyle(item);
    153. context.beginPath();
    154. context.rect(0 + 75 * index, 0, 50, 50);
    155. context.fill();
    156. });
    157. };
    158. canvas.setFontSize = function (context) {
    159. context.setFontSize(20);
    160. context.fillText('20', 20, 20);
    161. context.setFontSize(30);
    162. context.fillText('30', 40, 40);
    163. context.setFontSize(40);
    164. context.fillText('40', 60, 60);
    165. context.setFontSize(50);
    166. context.fillText('50', 90, 90);
    167. };
    168. canvas.setGlobalAlpha = function (context) {
    169. context.setFillStyle('red');
    170. context.fillRect(10, 10, 150, 100);
    171. context.setGlobalAlpha(0.2);
    172. context.setFillStyle('blue');
    173. context.fillRect(50, 50, 150, 100);
    174. context.setFillStyle('yellow');
    175. context.fillRect(100, 100, 150, 100);
    176. context.draw();
    177. };
    178. canvas.setLineCap = function (context) {
    179. context.beginPath();
    180. context.moveTo(20, 10);
    181. context.lineTo(200, 10);
    182. context.stroke();
    183. ['butt', 'round', 'square'].forEach(function (item, index) {
    184. context.beginPath();
    185. context.setLineCap(item);
    186. context.setLineWidth(10);
    187. context.moveTo(20 + 20 * index, 20 + 20 * index);
    188. context.lineTo(200, 20 + 20 * index);
    189. context.stroke();
    190. });
    191. };
    192. canvas.setLineDash = function (context) {
    193. context.setLineDash([10, 20], 5);
    194. context.beginPath();
    195. context.moveTo(0, 100);
    196. context.lineTo(400, 100);
    197. context.stroke();
    198. };
    199. canvas.setLineJoin = function (context) {
    200. context.beginPath();
    201. context.moveTo(10, 10);
    202. context.lineTo(90, 50);
    203. context.lineTo(10, 90);
    204. context.stroke();
    205. ['bevel', 'round', 'miter'].forEach(function (item, index) {
    206. context.beginPath();
    207. context.setLineJoin(item);
    208. context.setLineWidth(10);
    209. context.moveTo(30 + 80 * index, 10);
    210. context.lineTo(120 + 80 * index, 50);
    211. context.lineTo(30 + 80 * index, 90);
    212. context.stroke();
    213. });
    214. };
    215. canvas.setLineWidth = function (context) {
    216. [1, 5, 10, 15].forEach(function (item, index) {
    217. context.beginPath();
    218. context.setLineWidth(item);
    219. context.moveTo(20 + 10 * index, 20 + 20 * index);
    220. context.lineTo(100, 20 + 20 * index);
    221. context.stroke();
    222. });
    223. };
    224. canvas.setMiterLimit = function (context) {
    225. [1, 2, 3, 4].forEach(function (item, index) {
    226. context.beginPath();
    227. context.setMiterLimit(item);
    228. context.setLineWidth(10);
    229. context.setLineJoin('miter');
    230. context.moveTo(50 + 40 * index, 10);
    231. context.lineTo(140 + 40 * index, 50);
    232. context.lineTo(50 + 40 * index, 90);
    233. context.stroke();
    234. });
    235. };
    236. canvas.setShadow = function (context) {
    237. context.beginPath();
    238. context.setFillStyle('blue');
    239. context.setShadow(15, 15, 15, 'red');
    240. context.rect(30, 30, 150, 75);
    241. context.fill();
    242. };
    243. canvas.setStrokeStyle = function (context) {
    244. context.setStrokeStyle('blue');
    245. context.strokeRect(30, 30, 150, 75);
    246. };
    247. canvas.setTextAlign = function (context) {
    248. context.setStrokeStyle('red');
    249. context.moveTo(150, 20);
    250. context.lineTo(150, 170);
    251. context.stroke();
    252. context.setFontSize(15);
    253. context.setTextAlign('left');
    254. context.fillText('textAlign=left', 150, 60);
    255. context.setTextAlign('center');
    256. context.fillText('textAlign=center', 150, 80);
    257. context.setTextAlign('right');
    258. context.fillText('textAlign=right', 150, 100);
    259. };
    260. canvas.setTextBaseline = function (context) {
    261. context.setStrokeStyle('red');
    262. context.moveTo(5, 75);
    263. context.lineTo(295, 75);
    264. context.stroke();
    265. context.setFontSize(20);
    266. context.setTextBaseline('top');
    267. context.fillText('top', 5, 75);
    268. context.setTextBaseline('middle');
    269. context.fillText('middle', 50, 75);
    270. context.setTextBaseline('bottom');
    271. context.fillText('bottom', 120, 75);
    272. context.setTextBaseline('normal');
    273. context.fillText('normal', 200, 75);
    274. };
    275. canvas.setTransform = function (context) {
    276. context.setFillStyle('blue');
    277. context.fillRect(30, 30, 150, 75);
    278. context.setTransform(1, 0.5, -0.5, 1, 30, 10);
    279. context.setFillStyle('red');
    280. context.fillRect(30, 30, 150, 75);
    281. context.setTransform(1, 0.5, -0.5, 1, 30, 10);
    282. };
    283. canvas.stroke = function (context) {
    284. context.beginPath();
    285. context.moveTo(100, 100);
    286. context.lineTo(10, 100);
    287. context.lineTo(10, 10);
    288. context.stroke();
    289. };
    290. canvas.strokeRect = function (context) {
    291. context.setStrokeStyle('blue');
    292. context.strokeRect(30, 30, 150, 75);
    293. };
    294. canvas.translate = function (context) {
    295. context.strokeRect(10, 10, 150, 100);
    296. context.translate(20, 20);
    297. context.strokeRect(10, 10, 150, 100);
    298. context.translate(20, 20);
    299. context.strokeRect(10, 10, 150, 100);
    300. };
    301. canvas.addColorStop = function (context) {
    302. const grd = context.createLinearGradient(30, 10, 120, 10);
    303. grd.addColorStop(0, 'red');
    304. grd.addColorStop(0.16, 'orange');
    305. grd.addColorStop(0.33, 'yellow');
    306. grd.addColorStop(0.5, 'green');
    307. grd.addColorStop(0.66, 'cyan');
    308. grd.addColorStop(0.83, 'blue');
    309. grd.addColorStop(1, 'purple');
    310. context.setFillStyle(grd);
    311. context.fillRect(30, 30, 150, 80);
    312. };
    313. canvas.reset = function (context) {
    314. context.beginPath();
    315. context.setFillStyle('#000000');
    316. context.setStrokeStyle('#000000');
    317. context.setFontSize(10);
    318. context.setShadow(0, 0, 0, 'rgba(0, 0, 0, 0)');
    319. context.setLineCap('butt');
    320. context.setLineJoin('miter');
    321. context.setLineWidth(1);
    322. context.setMiterLimit(10);
    323. };
    324. module.exports = canvas;

    分享题目:创新互联百度小程序教程:CanvasContext
    网页网址:http://www.shufengxianlan.com/qtweb/news23/313673.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联