亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

微信小程序使用二次貝塞爾曲線畫波浪

 更新時(shí)間:2022年06月29日 08:57:47   作者:靜下心來靜下心來  
這篇文章主要為大家詳細(xì)介紹了微信小程序使用二次貝塞爾曲線畫波浪,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

這兩周做一個(gè)新的項(xiàng)目,人員比較緊張,除了需求和UI,前端后端一個(gè)人來干。

在項(xiàng)目需求確定后,UI隔了幾天設(shè)計(jì)出了UI界面,拿到UI效果圖后見有一個(gè)界面有波浪效果的我當(dāng)時(shí)就蒙圈了,這都啥玩意???轉(zhuǎn)念想到了最近在IT圈挺火的那個(gè)事件:產(chǎn)品要求安卓程序員實(shí)現(xiàn)根據(jù)用戶手機(jī)殼顏色自動更換APP主題的需求后,頓時(shí)覺得畫個(gè)波浪這個(gè)壓根就不是事啊。

二次貝塞爾曲線

在微信官方的二次貝塞爾曲線畫法連接

畫波浪

思路:

在屏幕左邊畫一個(gè)波,然后讓它一直向屏幕右邊平移過去。其X的值由負(fù)數(shù)變?yōu)檎龜?shù)依次增大;然后一直重復(fù)此操作。

我畫出來的波浪如下(感覺還是有那么一點(diǎn)波浪的感覺):

界面代碼為(index.wxml):

<view class="page-body">
 <view class="page-body-wrapper">
  <canvas canvas-id="myCanvas3" class="canvas3"></canvas>
 </view>
</view>

JS代碼為(index.js):

Page({
 onReady: function() {
  this.position = {
    x: 150,
    y: 150,
    vx: 2,
    vy: 2
   },
   this.obj = {
    offset: 0,
    baseLine: 40,
    direction: 1,
    waveDirection: 1
   },
   // var offset = 5
   this.drawQuadraticCurve3()
  this.interval = setInterval(this.drawQuadraticCurve3, 1)
  console.log(">>>>>>>>>" + this.obj.offset)
 },
 /**
  * 畫大波浪
  */
 drawQuadraticCurve3: function() {
  var obj = this.obj
  var startX = 20,
   itemWidth = 100,
   offset = obj.offset,
   baseLine = obj.baseLine,
   waveHeight = 10,
   direction = obj.direction,
   waveDirection = obj.waveDirection
 
  const ctx = wx.createCanvasContext('myCanvas3')
 
 
  function getWaveHeigh(i) {
   if (i % 2 == 0) {
    // return baseLine + waveHeight
   }
   return baseLine - waveHeight
  }
  ctx.beginPath()
  ctx.moveTo(-itemWidth * 6, baseLine)
  ctx.setFillStyle('#4BF6EE')
  for (var i = -6; i < 5; i++) {
   startX = i * itemWidth;
   var currentX = startX + (itemWidth / 2) + offset
   var currentY = getWaveHeigh(i)
   var currentEndX = startX + itemWidth + offset
   ctx.quadraticCurveTo(currentEndX - 10,
    currentY, currentEndX, baseLine)
   ctx.stroke()
  }
  //填充海水
  ctx.lineTo(0, 2000)
  ctx.setFillStyle('#4BF6EE')
  ctx.fill()
 
  ctx.draw()
 
 
  if (obj.waveDirection == 1) {
   obj.offset = obj.offset + 1
  } else if (obj.waveDirection == -1) {
   obj.offset = obj.offset - 1
  }
  if (obj.offset == 400) {
   obj.offset = 0
  }
  if (obj.offset == 50 || obj.offset == 1) {
   // obj.waveDirection = obj.waveDirection * -1
  }
 
 
  // if (direction == 1) {
  //  obj.baseLine = obj.baseLine + 1
  // } else if (direction == -1) {
  //  obj.baseLine = obj.baseLine - 1
  // }
  if (obj.baseLine >= 50 || obj.baseLine <= 40) {
   console.log("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
   //obj.direction = (obj.direction * -1)
  }
 },
 onUnload: function() {
  clearInterval(this.interval)
 }
})

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解怎么檢測和防止JavaScript死循環(huán)

    詳解怎么檢測和防止JavaScript死循環(huán)

    最近工作中遇到了一些死循環(huán)導(dǎo)致的頁面卡死問題,經(jīng)過 trouble shooting 和代碼修復(fù)解決了問題,所以下面這篇文章主要給大家介紹了怎么檢測和防止JavaScript死循環(huán)的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 常用javascript表單驗(yàn)證匯總

    常用javascript表單驗(yàn)證匯總

    這篇文章主要介紹了一些常用javascript表單驗(yàn)證,文章最后還附帶了一個(gè)實(shí)踐案例,以驗(yàn)證數(shù)字為例進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2015-11-11
  • JavaScript腳本判斷蜘蛛來源的方法

    JavaScript腳本判斷蜘蛛來源的方法

    本篇文章給大家介紹js判斷蜘蛛來源的方法,此方法的腳本是寫在body的onload里面的,當(dāng)頁面進(jìn)行加載時(shí)就進(jìn)行判斷,感興趣的朋友一起看看吧
    2015-09-09
  • element ui分頁多選,翻頁記憶的實(shí)例

    element ui分頁多選,翻頁記憶的實(shí)例

    今天小編就為大家分享一篇element ui分頁多選,翻頁記憶的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 控制input輸入框中提示信息的顯示和隱藏的方法

    控制input輸入框中提示信息的顯示和隱藏的方法

    這篇文章主要介紹了怎樣控制input輸入框中提示信息的顯示和隱藏 ,需要的朋友可以參考下
    2014-02-02
  • js中json對象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法

    js中json對象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法

    這篇文章主要介紹了js中json對象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了json對象與字符串的功能以及相互轉(zhuǎn)換操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • 下載站常用的點(diǎn)擊下載地址提示設(shè)hao123為首頁的js代碼

    下載站常用的點(diǎn)擊下載地址提示設(shè)hao123為首頁的js代碼

    最近很多下載站下載文件的時(shí)候都提示設(shè)置hao123為首頁,這里我們來分享下具體的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2013-10-10
  • js浮動圖片的動態(tài)效果

    js浮動圖片的動態(tài)效果

    這篇文章介紹了幾種JS的動態(tài)效果實(shí)例,有需要的朋友可以參考一下
    2013-07-07
  • 微信小程序發(fā)送短信驗(yàn)證碼完整實(shí)例

    微信小程序發(fā)送短信驗(yàn)證碼完整實(shí)例

    這篇文章主要介紹了微信小程序發(fā)送短信驗(yàn)證碼完整實(shí)例,實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼,帶60秒倒計(jì)時(shí)功能,無需服務(wù)器端,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2019-01-01
  • js Array.slice的8種不同用法示例

    js Array.slice的8種不同用法示例

    這篇文章主要給大家介紹了關(guān)于js Array.slice的8種不同用法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用js 具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論