码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 鸿蒙原生应用元服务开发-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。

  • 相关阅读:
    「X」Embedding in NLP|初识自然语言处理(NLP)
    华为OD机试真题 Java 实现【数组二叉树】【2023 B卷 200分】,附详细解题思路
    【学习教程】MCM箱模型建模方法及大气O3来源解析实践技术应用
    EXPLAIN的使用
    基于战争优化算法(WSO)的光伏模型参数估计研究(Matlab代码实现)
    C语言:扫雷小游戏
    武田公司2022财年第一季度业绩强劲;正稳步实现全年的管理层指引目标
    华为机试-字符串合并处理
    类的构造函数执行顺序
    虚假KeePass网站利用Google Ads和Punycode推送恶意软件
  • 原文地址:https://blog.csdn.net/weixin_69135651/article/details/136654517
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号