当前位置:   article > 正文

鸿蒙原生应用元服务开发-WebGL网页图形库开发无着色器绘制2D图形

鸿蒙原生应用元服务开发-WebGL网页图形库开发无着色器绘制2D图形

无着色器绘制2D图形
使用WebGL开发时,为保证界面图形显示效果,请使用真机运行。
此场景为未使用WebGL绘制的2D图形(CPU绘制非GPU绘制)。开发示例如下:

1.创建页面布局。index.hml示例如下:

  1. <div class="container">
  2. <canvas ref="canvas1" style="width : 400px; height : 200px; background-color : lightyellow;"></canvas>
  3. <button class="btn-button" onclick="BtnDraw2D">BtnDraw2D</button>
  4. </div>

2.设置页面样式。index.css示例如下:

  1. .container {
  2. flex-direction: column;
  3. justify-content: center;
  4. align-items: center;
  5. }
  6. .btn-button {
  7. margin: 1px;
  8. height: 40px;
  9. width: 220px;
  10. background-color: lightblue;
  11. font-size: 20px;
  12. text-color: blue;
  13. }

3.编辑JavaScript代码文件,增加2D绘制逻辑代码。index.js示例如下:

  1. // index.js
  2. export default {//NAPI交互代码
  3. data: {
  4. title: "DEMO BY TEAMOL",
  5. fit:"cover",
  6. fits: ["cover", "contain", "fill", "none", "scale-down"]
  7. },
  8. onInit() {
  9. this.title = this.$t('strings.world');
  10. },
  11. BtnDraw2D(){
  12. // 获取canvas元素
  13. const canvas = this.$refs.canvas1;
  14. // 获取2D上下文
  15. const ctx = canvas.getContext('2d');
  16. // 执行CPU绘制函数
  17. // Set line width
  18. ctx.lineWidth = 10;
  19. // Wall
  20. ctx.strokeRect(75, 140, 150, 110);
  21. // Door
  22. ctx.fillRect(130, 190, 40, 60);
  23. // Roof
  24. ctx.beginPath();
  25. ctx.moveTo(50, 140);
  26. ctx.lineTo(150, 60);
  27. ctx.lineTo(250, 140);
  28. ctx.closePath();
  29. ctx.stroke();
  30. }
  31. }

4.点击按钮绘制2D图形的效果图
 

鸿蒙原生应用元服务开发-WebGL网页图形库开发无着色器绘制2D图形-鸿蒙开发者社区


本文参考引用HarmonyOS官方开发文档,基于API9。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/228529
推荐阅读
相关标签
  

闽ICP备14008679号