1. 程式人生 > >【微信小程式之畫布】四:手指觸控繪波浪線

【微信小程式之畫布】四:手指觸控繪波浪線

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。

微信小程式開發交流qq群   173683895  、 526474645 ;

正文:

功能:根據手指觸控繪畫一條直線路徑--> 起點為手指開始觸控時的座標,終點為手指觸控結束時的座標

效果圖:

上程式碼:

<canvas class='myCanvas' canvas-id="myCanvas" bindtouchstart='EventHandleStart' bindtouchend='EventHandle' style="border: 1px solid;" />
// pages/test/test.js
var strat_x, strat_y, ent_x, ent_y, beginPath;
var ctx = wx.createCanvasContext('myCanvas');
Page({
  data: {
    _num:1
  },

  onLoad: function () {
    var that = this;
    var query = wx.createSelectorQuery();
    //選擇id
    query.select('.myCanvas').boundingClientRect()
    query.exec(function (res) {
      that.setData({
        img_Width: res[0].width,
        img_Height: res[0].height
      })
      //res就是 該元素的資訊 陣列
      ctx.drawImage('/image/txt.jpg', 0, 0, res[0].width, res[0].height)
      ctx.draw()
    })
  },
  // 觸控事件
  EventHandleStart: function (event) {
    strat_x = event.touches[0].x;
    strat_y = event.touches[0].y;
  },
  // 結束觸控事件
  EventHandle: function (event) {
    var that = this;
      ent_x = event.changedTouches[0].x;
      ent_y = event.changedTouches[0].y;
      ctx.setLineWidth(2); // 設定線寬
      ctx.setStrokeStyle('red')
      ctx.beginPath(); //建立路徑
      ctx.moveTo(strat_x, strat_y); // 設定路徑起點座標
      ctx.setLineDash();
      var xxx = ent_x - strat_x;
      var num = 5
      for (var i = 0; i < xxx; i++) {
        if (i == num && strat_x + 5 < ent_x) {
          num = num + 5
          ctx.moveTo(strat_x, strat_y);
          ctx.bezierCurveTo(strat_x, strat_y + 2, strat_x + 5, strat_y + 2, strat_x + 5, strat_y)
          strat_x = strat_x + 5
          ctx.moveTo(strat_x, strat_y);
          ctx.bezierCurveTo(strat_x, strat_y - 2, strat_x + 5, strat_y - 2, strat_x + 5, strat_y)
          strat_x = strat_x + 5
        }
      }
      ctx.stroke();//畫出當前路徑的邊框。預設顏色色為黑色。
      ctx.setFontSize(20)
      ctx.setFillStyle('red')
      ctx.draw(true)
    },
})

相關推薦

程式畫布手指觸控波浪

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。 微信小程式開發交流qq群   173683895  、 526474645 ; 正文: 功能:根據手指觸控繪畫一條直線路徑-->

程式畫布canvas元件

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。 微信小程式開發交流qq群   173683895  、 526474645 ; 正文: 此文章主要是對canvas元件的介紹與基本的使用。在元件中繪畫了一條固定的直線。 我們先了解一下canvas元件: wx

程式學習筆記1開發一個帶歷史記錄功能的四則計算器

端午CSDN學院促銷,買了微信小程式開發實戰跟著學習一下。 混合模式移動應用 微信小程式是一種Hybrid-App(混合模式移動應用),它是介於Native-App和Web-App之間的,更接近前者,但開發成本小很多。 基本結構 pages目錄:其內的

程式控制硬體② 開始程式旅,匯入程式Mqtt客戶端原始碼,實現簡單的驗證和通訊於伺服器!(附帶原始碼)

本博文由熱愛分享熱愛技術的半顆心臟原創,非官方人員、非組織名義編寫,博文如有不對或侵犯您的權益,請及時留言,第一時間糾正! 一、前言; 繼續我們的小程式控制智慧硬體(包括esp8266)學

程式雲開發從陌生到熟悉

前言 微信小程式在9月10號正式上線了雲開發的功能,弱化後端和運維概念,以前開發一個小程式需要申請一個小程式,準備一個https的域名,開發需要一個前端一個服務端,有了雲開發只有申請一個小程式,一個前端就能搞定,真的是零成本。 雲開發三大基礎能力 雲函式:執行在微信伺服器上的函式,處理微信相關操作有天然優勢

程式控制硬體① 全網首發,藉助 emq 訊息伺服器帶你如何搭建程式的mqtt伺服器,輕鬆控制智慧硬體!

一、前言; 從去年開始自學前端,到今年的伺服器的學習,也算是自己的一大進步了!這幾天開始搭建小程式的伺服器,琢磨了三天的Nginx中間訊息外掛,期間也是不睡午覺!也許入門Nginx,和大家一樣期

程式筆記-4元件-基礎內容(icon、text、progress)

一、icon 屬性名 型別 預設值 說明 type String icon型別,有效值:success, success_no_circle, info,

程式筆記-3元件-檢視容器(ScrollView和Swiper)

以下是對與檢視容器元件(ScrollView和Swiper)的簡要使用說明 一、scroll-view 1、基本設定 首先是參考的開發文件網址 https://mp.weixin.qq.com/debug/wxadoc/dev/framework/v

程式筆記-1基本構成及配置

此筆記作為學習過程中筆記,作為存檔並藉此分享,如有錯誤感謝指出 此筆記大量參考微信官方開發者文件以及“軟謀教育課程(這個課程在騰訊課堂是免費的,算是我現在看到的比較好的視訊教程)”,如有版權問題請及時與我聯絡刪除 一、程式碼構成 微信小程式基本檔案

程式常見問題點選指定文字實現指定文字變色解決方案一

1、效果展示 2、關鍵程式碼 index.wxml index.wxss index.js 3、原始碼獲取方式 百度雲連結:http://pan.baidu.com/s/1gfJU6Sb 密碼:p6hy 4、在編寫點選指定文字實現指定文字變色過程中有遇到任何問題獲取

程式常見問題匯入現有程式專案解決方案

操作步驟 1、假設我們已經下載到微信小程式官方demo或者已下載到其他小程式demo 2、雙擊開啟【微信web開發者工具】 3、點選【本地小程式專案】 4、點選【新增專案】 5、根據實際選擇【

程式常見問題view標籤設定背景圖片手機無法預覽解決方案一

操作步驟: 1、將頁面放置於專案根目錄下,編寫頁面結構程式碼,如下圖 2、手機預覽除錯效果 ☛在使用樣式設定背景圖片過程中有遇到任何問題或者不明白的地方,歡迎新增我的微信進行諮詢,感謝您的支援!微

程式開發筆記上傳多個檔案超過10個

【小程式筆記】wx.uploadFile(OBJECT) 先說說遇到的問題: 小程式可通過wx.uploadFile(OBJECT)介面上傳手機檔案至伺服器,但是在文件中關於請求中有這麼一段說明: request、uploadFile、down

程式開發筆記--蘋果手機的懸浮按鈕居中問題

小程式開發筆記(二)–蘋果手機的懸浮按鈕居中問題 記錄小程式開發過程中遇到的那些問題 先看效果圖 頁面很簡單,上面兩個輸入框,下方一個按鈕,輸入框分別是textarea和input,按鈕在這裡我做成懸浮狀態(演示用,實際並不需要懸浮)。 頁面

程式開發•系列文章模組化

微信小程式的MINA框架,其實是許多前端開發技術的組合。這篇文章中,我們來簡單地討論一下模組化。 1、模組化標準 玩前端的同學大部分都知道模組化的幾個標準,CommonJs / AMD / CMD。這裡花費一些篇幅簡單的介紹一下,比較熟悉的同學可以跳過這一部分的介紹。(1)

程式常見問題不在以下合法域名列表解決方案

request請求失敗常見問題情況1 解決方案:開啟小程式微信公眾平臺設定小程式開發設定,配置伺服器合法域名(必須是https),如下圖 rquest請求失敗常見問題情況2 根據微信小程式開

程式學習筆記彈窗的兩種姿勢

在wxml檔案里布局彈窗,利用條件渲染,在js程式碼裡控制是否顯示 wxml <view > <loading wx:if="{{showLoading}}">載入中&

程式輪播元件swiper

swiper,輪播圖片,叫滑塊檢視容器。效果很屌的哦 官方文件例子很好: https://mp.weixin.qq.com/debug/wxadoc/dev/component/swiper.html 先上最終效果: 啦啦啦,程式碼: 樣式無所謂的啦,定義你自己喜

程式學習----使用globalData函式設定全域性變數

我們在app.js中設定需要的全域性變數的引數,比如公司名稱等 //app.js App({ globalData: { title: 'tomatocc' } }) 然後我們就可以在某個頁面的js檔案中(比如index.js)的data數組裡面去直

程式學習----使用template模板所遇到的問題

官方文件的demo過於簡單,本人嘗試幾次也沒有弄懂,找了幾個demo後才漸漸瞭解清楚小程式的模板是怎麼玩的。並且展示一個簡單的demo 首先來看我們的專案結構:主要用到index.js,index.wxml,temp.js,temp.wxml 首先,我