婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于 HTML5 WebGL 實現的垃圾分類系統

基于 HTML5 WebGL 實現的垃圾分類系統

熱門標簽:標準智能外呼系統 地圖標注自己去過的地方 洛陽市伊川縣地圖標注中心官網 高德地圖標注錯誤怎么修改 電銷機器人視頻 搜狗星級酒店地圖標注 平頂山電子地圖標注怎么修改 江蘇高頻外呼系統線路 會聲會影怎樣做地圖標注效果

前言

垃圾分類,一般是指按一定規定或標準將垃圾分類儲存、分類投放和分類搬運,從而轉變成公共資源的一系列活動的總稱。分類的目的是提高垃圾的資源價值和經濟價值,力爭物盡其用。垃圾在分類儲存階段屬于公眾的私有品,垃圾經公眾分類投放后成為公眾所在小區或社區的區域性準公共資源,垃圾分類搬運到垃圾集中點或轉運站后成為沒有排除性的公共資源。從國內外各城市對生活垃圾分類的方法來看,大致都是根據垃圾的成分、產生量,結合本地垃圾的資源利用和處理方式來進行分類的。到2019年6月25日,生活垃圾分類制度將入法。一套應用于工業物聯網的智能一體化的垃圾分類機械臂將隨之而來,由此,我應用 HT for Web  的圖型化編輯工具打造了一款形象生動的例子:Garbage classification,也借此機會與大家一起分享和學習。

代碼實現

(注:gif 的上傳大小有限,實際效果與還請參考 demo 鏈接)

首先,我應用已經精心布置好的 3D 場景,為了有更好的操作體驗感,我們要從它的基本設置開始:

gv.setMovableFunc(() => { return false }) // 禁止拖動
gv.getWireframe = (d) => { d.s('wf.visible', false) }  // 隱藏選中邊框
gv.setEye([583, -212, -789]) // 設置眼睛
gv.setCenter([-76, -654, -133]) // 設置中心點
gv.setFar(100000) // 設置遠端位置
gv.setNear(10) // 設置近端位置
gv.setInteractors([ new ht.graph3d.MapInteractor(gv) ]) // 設置交互限制
gv.setSkyBox(dm.getDataByTag('skyBox')) // 設置天空球
window.document.oncontextmenu = () => { return false } // 全局設置右鍵菜單禁用
gv.scene = { // 復制初始位置
    eye: ht.Default.clone(gv.getEye()),
    center: ht.Default.clone(gv.getCenter()),
    far: ht.Default.clone(gv.getFar()),
    near: ht.Default.clone(gv.getNear()),
}

 

我復制了一下整個場景的初始視角情況方便我做稍后的處理,我監聽了部分鼠標事件來形成自己的操作風格(比如雙擊背景還原視角以及雙擊模型拉近視角):

gv.mi(e => {
    let data = e.data
    let kind = e.kind
    if (kind === 'doubleClickBackground') { // 雙擊背景
        gv.moveCamera(this.gv.scene.eye, this.gv.scene.center, {duration : 1000}) // 恢復視角
    }
    else if (kind === 'doubleClickData') { // 雙擊模型
        gv.flyTo(data, {animation : {duration : 500}, distance : 800}) // 拉近視角
    }
})

 

好了,準備工作做好了,下面來實現動畫部分,除了了解 垃圾分類 的方式外我還參考了網上很多機械臂的視頻,學習它的運動模式和動作細節,對每個結構和部位的動畫進行步驟的排序和構思。這里我挑選幾處動畫的實現方式來展示:

 

function mechanicalArmAnim1() {
  ht.Default.startAnim({
    duration: 1000,
    easing: (t) => { return t },
    action: (v, t) => {
      postbrachium.r3(degrees(0) + (degrees(20) - degrees(0)) * v, postbrachium.r3()[1], postbrachium.r3()[2]) // 后臂向下移
    },
    finishFunc: () => {
      setTimeout(() => {
        mechanicalArmAnim2()
      }, 300)
    }
  })
}
function mechanicalArmAnim2() {
  ht.Default.startAnim({
    duration: 1000,
    easing: (t) => { return t },
    action: (v, t) => {
      postbrachium.p3(-208 + (-184 + 208) * v, postbrachium.p3()[1], postbrachium.p3()[2]) // 后臂前伸
      hydraulicRod1.r3(degrees(0) + (degrees(8) - degrees(0)) * v, hydraulicRod1.r3()[1], hydraulicRod1.r3()[2]) // 液壓桿1傾斜
      extensionRod1.r3(degrees(0) + (degrees(8) - degrees(0)) * v, extensionRod1.r3()[1], extensionRod1.r3()[2]) // 伸長桿1傾斜
      extensionRod1.p3(-169 + (-185 + 169) * v, -516 + (-511 + 516) * v, extensionRod1.p3()[2]) // 伸長桿1伸長
      hydraulicRod2.r3(degrees(0) + (degrees(-8) - degrees(0)) * v, hydraulicRod2.r3()[1], hydraulicRod2.r3()[2]) // 液壓桿2傾斜
      extensionRod2.r3(degrees(0) + (degrees(-8) - degrees(0)) * v, extensionRod2.r3()[1], extensionRod2.r3()[2]) // 伸長桿2傾斜
      extensionRod2.p3(-169 + (-185 + 169) * v, -516 + (-511 + 516) * v, extensionRod2.p3()[2]) // 伸長桿2伸長
    },
    finishFunc: () => {
      setTimeout(() => {
        mechanicalArmAnim3()
      }, 300)
    }
  })
}
function mechanicalArmAnim3() {
  let oldValue = antebrachium.r3()[0]
  ht.Default.startAnim({
    duration: 1000,
    easing: (t) => { return t },
    action: (v, t) => {
      hydraulicRod1.r3(degrees(8) + (degrees(7) - degrees(8)) * v, hydraulicRod1.r3()[1], hydraulicRod1.r3()[2]) // 液壓桿1傾斜
      extensionRod1.r3(degrees(8) + (degrees(7) - degrees(8)) * v, extensionRod1.r3()[1], extensionRod1.r3()[2]) // 伸長桿1傾斜
      extensionRod1.p3(-185 + (-186 + 185) * v, -511 + (-507 + 511) * v, extensionRod1.p3()[2]) // 伸長桿1伸長
      hydraulicRod2.r3(degrees(-8) + (degrees(-7) - degrees(-8)) * v, hydraulicRod2.r3()[1], hydraulicRod2.r3()[2]) // 液壓桿2傾斜
      extensionRod2.r3(degrees(-8) + (degrees(-7) - degrees(-8)) * v, extensionRod2.r3()[1], extensionRod2.r3()[2]) // 伸長桿2傾斜
      extensionRod2.p3(-185 + (-186 + 185) * v, -511 + (-507 + 511) * v, extensionRod2.p3()[2]) // 伸長桿2伸長
      postbrachium.r3(degrees(20) + (degrees(25) - degrees(20)) * v, postbrachium.r3()[1], postbrachium.r3()[2]) // 后臂向下移
      antebrachium.r3(oldValue + (degrees(-40) - oldValue) * v, antebrachium.r3()[1], antebrachium.r3()[2]) // 前臂向下移
      claw1.r3(degrees(-20) + (degrees(-60) - degrees(-20)) * v, claw1.r3()[1], claw1.r3()[2]) // 上爪抓取
      claw2.r3(degrees(-60) + (degrees(-30) - degrees(-60)) * v, claw2.r3()[1], claw2.r3()[2]) // 下爪抓取
    },
    finishFunc: () => {
      mechanicalArmAnim4()
    }
  })
}

 

這一段動畫是機械臂從初始化狀態到向下抓取的一個過程,我將每段動畫分成函數來寫比較方便后續管理,每一處也代表了一個步驟。這其中最復雜且細微的步驟要數液壓桿的運動了,為了讓動畫看起來更加真實,我除了將手臂單獨運動的過程中加入了延時執行下一段動畫以體現機器運動的特點外,也把液壓桿的部分也做了動畫,如果不做處理,那么機械臂在上下移動的時候就會有不科學的效果出現。動畫函數 在這種 demo 中應用的最廣,而且里面也包含了一些緩動函數,有興趣的博友們可以 點此處 自己親自動手玩一玩~

這里面的拾取垃圾步驟還應用了我過去介紹過的 吸附 功能,這個方法非常的適合抓取物體的動作,通過 setHost 使節點吸附于宿主,這樣就相當于子節點跟隨父節點移動,此時只需要對機械臂進行偏移和旋轉的操作,垃圾便會隨之一起運動了,大大減少了工作量!

還有一部分更酷的屬性設置給大家展示一下,可以讓 3D 場景整體有更真實的陰影處理效果。首先我們要注意將無關的節點陰影通過 node.s('shadow.cast', false) 關閉,比如編組用的box,背景,地板和面板等。

最后我們就把陰影的細節做下調整,達到比較好的效果:

 

gv.enableShadow(true, {
  degreeX : 0,       // 投影 x 軸角度
  degreeZ : -25,      // 投影 z 軸角度
  intensity : 0.3,    // 陰影強度, 1 為黑色
  quality : 'high',  // low / medium / high / ultra / 4096數值, 質量
  type : 'soft',     // none / hard / soft
  radius : 0.2,      // type 為 hard / soft 時,補充的邊緣厚度,用來提供更柔和的邊緣
  bias : -0.003     // 深度浮點偏差補足
})

總結

更多動畫 demo 以及工業化領域的文章請繼續關注我的博客,感謝大家的支持!

醫療站(https://www.cnblogs.com/htdaydayup/p/11558748.html)

在工業物聯網從嬰兒走到青年的成熟道路上,一定會有更多的潛力和挑戰在等著我們,等待我們去開發,等待我們去創造!相信我們的技術成為國際水準會指日可待!同時在十一國慶后的第一個工作日祝大家精神飽滿,工作順利!

總結

以上所述是小編給大家介紹的基于 HTML5 WebGL 實現的垃圾分類系統,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:蚌埠 松原 廣西 常德 阿克蘇 廣東 果洛 鄂爾多斯

巨人網絡通訊聲明:本文標題《基于 HTML5 WebGL 實現的垃圾分類系統》,本文關鍵詞  基于,HTML5,WebGL,實現,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于 HTML5 WebGL 實現的垃圾分類系統》相關的同類信息!
  • 本頁收集關于基于 HTML5 WebGL 實現的垃圾分類系統的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    在线欧美日韩国产| 中文字幕中文字幕一区| 日韩中文字幕91| 精品免费视频一区二区| 不卡av免费在线观看| 日韩精品乱码免费| 午夜精品一区在线观看| 国产精品国产精品国产专区不片| 久久综合av免费| 欧美亚洲尤物久久| 国产精品乡下勾搭老头1| 亚洲国产视频直播| 国产精品免费视频网站| 欧美一区二区播放| 日本道精品一区二区三区 | 国产精品久久久久久久久晋中| 久久精品视频网| 欧美肥大bbwbbw高潮| 色婷婷国产精品| 成人福利视频在线看| 91浏览器在线视频| 99国内精品久久| 成人精品视频一区| 狠狠色丁香婷婷综合久久片| 午夜一区二区三区在线观看| 欧美激情一区二区三区在线| 日韩欧美高清dvd碟片| 欧美日韩高清不卡| 欧美精品视频www在线观看| 精品国产3级a| 久久夜色精品国产噜噜av| 一区视频在线播放| 亚洲视频你懂的| 最近日韩中文字幕| 男女性色大片免费观看一区二区 | 精品综合久久久久久8888| 午夜国产精品影院在线观看| 国产一区二区网址| 韩国视频一区二区| 欧美日韩中文字幕精品| 欧美精品日日鲁夜夜添| 日本一区二区成人| 免费人成黄页网站在线一区二区| 成人app网站| 欧美大片拔萝卜| 亚洲国产日韩a在线播放| 成人毛片在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲精品欧美激情| 日韩av电影一区| 国产精品综合一区二区三区| 色狠狠综合天天综合综合| 久久精品人人做人人爽人人| 天天做天天摸天天爽国产一区 | 夜夜揉揉日日人人青青一国产精品| 亚洲欧美在线高清| 国产精品影视在线观看| 日韩欧美国产一区二区在线播放| 亚洲成人www| 欧美色综合网站| 亚洲男同性恋视频| 精品一区二区三区免费| 91精品国产综合久久香蕉麻豆| 精品福利视频一区二区三区| 秋霞午夜av一区二区三区| 欧美日韩一区中文字幕| 亚洲激情综合网| 日本久久电影网| 伊人婷婷欧美激情| 在线观看中文字幕不卡| 一区二区在线观看视频| 色综合久久88色综合天天免费| 国产精品久久久久影院| jiyouzz国产精品久久| 欧美一区二区国产| 免费欧美日韩国产三级电影| 制服丝袜中文字幕亚洲| 秋霞成人午夜伦在线观看| 欧美一级精品在线| 亚洲黄色尤物视频| 欧美三级日韩三级国产三级| 亚洲妇熟xx妇色黄| 欧美一区永久视频免费观看| 麻豆成人久久精品二区三区红| 99久久综合精品| 亚洲麻豆国产自偷在线| 在线日韩国产精品| 日本亚洲电影天堂| 久久久久亚洲综合| 六月丁香婷婷久久| 91精品国产福利| 韩国理伦片一区二区三区在线播放| 精品国产91乱码一区二区三区 | 国产免费成人在线视频| 另类小说图片综合网| 久久久久国产精品免费免费搜索| 国产成人av福利| 一本久久a久久免费精品不卡| 亚洲一二三专区| 91麻豆高清视频| 人禽交欧美网站| 中文字幕欧美三区| 欧美色倩网站大全免费| 精品在线亚洲视频| 自拍偷拍亚洲欧美日韩| 欧美一区二区久久久| 99久久精品国产精品久久| 亚洲国产综合人成综合网站| 精品福利一区二区三区免费视频| 91视视频在线直接观看在线看网页在线看| 日韩精品午夜视频| 中文字幕亚洲成人| 欧美一级爆毛片| 色婷婷狠狠综合| 国产精品77777| 肉色丝袜一区二区| 亚洲人123区| 国产亚洲一二三区| 欧美一区二区在线免费播放| 日本韩国欧美三级| 不卡视频免费播放| 久久99精品一区二区三区三区| 亚洲主播在线播放| 中文字幕一区二区不卡| 久久久精品免费观看| 欧美一区二区三区在线观看| 91激情在线视频| 不卡的av电影| 成人手机电影网| 国产一区二区三区日韩| 日韩中文字幕亚洲一区二区va在线 | 欧美日韩一区二区三区四区五区| 成人午夜视频免费看| 精品制服美女丁香| 久久精品二区亚洲w码| 丝袜诱惑制服诱惑色一区在线观看| 亚洲欧美国产三级| 中文字幕一区二区不卡 | 91麻豆.com| 91香蕉视频污| 99久久免费视频.com| 懂色av一区二区三区免费看| 狠狠v欧美v日韩v亚洲ⅴ| 久久99精品久久久久久久久久久久| 爽好多水快深点欧美视频| 亚洲va欧美va人人爽| 亚洲福利国产精品| 日韩精品电影在线| 丝袜美腿亚洲色图| 久久精品久久久精品美女| 久久99国产精品麻豆| 免费在线观看视频一区| 麻豆精品国产传媒mv男同| 久久aⅴ国产欧美74aaa| 国产成人精品aa毛片| 国产a视频精品免费观看| 成人网在线免费视频| 92精品国产成人观看免费| 91麻豆国产福利精品| 欧美精品亚洲二区| 久久综合色鬼综合色| 中文一区一区三区高中清不卡| 国产精品久久久久aaaa樱花 | 91精品国产综合久久久久久久| 91精品黄色片免费大全| 久久综合国产精品| 成人免费在线播放视频| 亚洲一区二区av在线| 日韩精品亚洲一区二区三区免费| 激情综合色播五月| 99视频在线观看一区三区| 日本二三区不卡| 日韩欧美一二三| 欧美国产精品劲爆| 婷婷综合另类小说色区| 国产iv一区二区三区| 欧洲人成人精品| 2021中文字幕一区亚洲| 夜夜嗨av一区二区三区网页 | 国产精品久线观看视频| 亚洲二区在线观看| 国产成人午夜99999| 欧美亚洲日本国产| 久久色.com| 五月婷婷另类国产| 成人av在线播放网址| 欧美一卡2卡三卡4卡5免费| 国产精品欧美久久久久一区二区| 偷窥少妇高潮呻吟av久久免费| 国产成人福利片| 欧美一区二区三区精品| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲欧美一区二区三区孕妇| 蜜臀av一区二区在线免费观看| 不卡在线观看av| 精品成人免费观看| 亚洲h精品动漫在线观看| 99国产精品久| 久久久久久久久99精品| 美女久久久精品|