整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html自學教程(八)html5基礎

          html5 SVG動畫&路徑

          SVG動畫可以使用<animate>元素創建

          實例:

          創建一個矩形,將在3秒內更改其位置,然后重復動畫兩次

          <svg width="1000" height="250">

          <rect width="150" height="150" fill="orange">

          <animate attributeName="x" from="0" to="300" dur="3s" fill="freeze" repeatCount="2" />

          </rect>

          </svg>

          attributeName:指定哪個屬性需要產生動畫效果

          from:指定屬性的起始值

          to:指定屬性的結束值

          dur:指定動畫運行的時間(持續時間)

          fill="frezee|remove":指定動畫播放完畢后是停留在播放的終點還是回到起始位置

          repeatCount:指定動畫的重復播放次數

          在上面的例子中,矩形在3s內將其x屬性從0更改為300

          ●要無限重復動畫,請使用值"indefinite"作為repeatCount屬性

          <path>元素用于定義一個路徑

          下面的命令可用于路徑數據:

          ●M=moveto

          ●L=lineto

          ●H=horizontal lineto

          ●V=vertical lineto

          ●C=curveto

          ●S=smooth curveto

          ●Q=quadratic Bezier curve

          ●T=smooth quadratic Bezier curveto

          ●A=elliptical Arc

          ●Z=closepath

          注意:以上所有命令均允許小寫字母.大寫字母表示絕對定位,小寫字母表示相對定位

          實例:

          <svg width="500" height="500">

          <path d="M50 0 L75 200 L225 200 Z"/>

          </svg>

          上面的例子中定義了一條路徑,它開始于150 0,到達位置75 200,然后從那里開始到225 200,最后150 0關閉路徑

          二 html5 Canvas

          html5<canvas>元素用于圖形的繪制,通過腳本(通常是JavaScript)來完成

          <canvas>標簽只是圖形容器,你必須使用腳本來繪制圖形

          getContext()方法可返回一個對象,該方法提供了用于在畫布上繪畫的方法和屬性.

          你可以通過多種方法使用canvas繪制路徑,盒,圓,字符以及添加圖像

          <canvas>元素定義如下:

          <canvas id"myCanvas" width="200" height="100">

          </canvas>

          <canvas>標簽通常需要指定一個id屬性(腳本中經常使用),width和height屬性定義的畫布的大小

          了解和使用Canvas需要基本了解JavaScript的基本知識

          canvas是一個二維坐標

          canvas的左上角坐標為(0,0)

          x坐標向右增加

          y坐標向著畫布底部增加

          Canvas-路徑

          在Canvas上畫線,我們將使用以下兩種方法:

          ●moveTo(x,y)定義線條開始坐標

          ●lineTo(x,y)定義線條結束坐標

          在canvas中繪制圓形,我們將使用以下方法:

          ●arc(x,y,start,stop)

          Canvas-文本

          使用canvas繪制文本,重要的屬性和方法如下:

          ●font-定義字體

          ●fillText(text,x,y)-在canvas上繪制實心的文本

          ●strokeText(text,x,y)-在canvas上繪制空心的文本

          Canvas-漸變

          漸變可以填充在矩形,圓形,線條,文本等等,各種形狀可以自己定義不同的顏色

          以下有兩種不同的方式來設置canvas漸變:

          ●creatLinearGradient(x,y,x1,y1)-創建線條漸變

          ●creatRadialGradient(x,y,r,x1,y1,r1)-創建一個徑向/圓漸變

          當我們使用漸變對象,必須使用兩種或兩種以上的停止顏色

          addColorStop()方法指定顏色停止,參數使用坐標描述,可以是0至1

          使用漸變,設置fillStyle或strokeStyle的值為漸變,然后繪制形狀,如矩形,文本,或一條線

          Canva-圖像

          把一幅圖像放置在畫布上,使用以下方法:

          ●drawImage(image,x,y)

          三 html5 SVG與Canvas的區別

          SVG:

          SVG是一種使用XML描述2D圖形的語言

          SVG基于XML,這意味著SVG DOM中的每個元素都是可用的.你可以為某個元素附加JavaScript事件處理器

          在SVG中,每個被繪制的圖形均被視為對象.如果SVG對象的屬性發生改變,那么瀏覽器能夠自動重現圖形

          特點:

          ●不依賴分辨率

          ●支持事件處理器

          ●最適合帶有大型渲染區域的應用程序(比如谷歌地圖)

          ●復雜程度高會減慢渲染速度(任何過度使用DOM的應用都不快)

          ●不適合游戲應用

          Canvas:

          canvas通過JavaScript來繪制2D圖形

          canvas可以逐像素進行渲染的

          在canvas中,一旦圖形被繪制出來,它就不會繼續得到瀏覽器的關注

          如果其位置發生變化,那么整個場景也需要重新啟動,包括任何或許已被圖像覆蓋的對象

          特點:

          ●依賴分辨率

          ●不支持事件處理器

          ●弱的文本渲染能力

          ●能夠以.png或.ipg格式保存結果圖像

          ●最適合圖像密集型的游戲,其中的許多對象都會被頻換重繪


          好學吧~學會了都是自己的~~


          85條高級AutoCAD工程師繪圖技巧

          1.如何替換找不到的原文字體?


            復制要替換的字庫為將被替換的字庫名,如:打開一幅圖,提示未找到字體jd,你想用hztxt.shx替換它,那么你可以去找AutoCAD字體文件夾(font)把里面的hztxt.shx 復制一份,重新命名為jd.shx,然后在把XX.shx放到font里面,在重新打開此圖就可以了。以后如果你打開的圖包含jd這樣你機子里沒有的字體,就再也不會不停地要你找字體替換了。

          2.如何刪除頑固圖層?


            方法1:將無用的圖層關閉,全選,COPY 粘貼至一新文件中,那些無用的圖層就不會貼過來。如果曾經在這個不要的圖層中定義過塊,又在另一圖層中插入了這個塊,那么這個不要的圖層是不能用這種方法刪除的。
            方法2: 選擇需要留下的圖形,然后選擇文件菜單->輸出->塊文件,這樣地塊文件就是選中部分的圖形了,如果這些圖形中沒有指定的層,這些層也不會被保存在新的圖塊圖形中。
            方法3:打開一個CAD文件,把要刪的層先關閉,在圖面上只留下你需要的可見圖形,點文件-另存為,確定文件名,在文件類型欄選*.DXF格式,在彈出的對話窗口中點工具-選項-DXF選項,再在選擇對象處打鉤,點確定,接著點保存,就可選擇保存對象了,把可見或要用的圖形選上就可以確定保存了,完成后退出這個剛保存的文件,再打開來看看,你會發現你不想要的圖層不見了。
            方法4:用命令laytrans,可將需刪除的圖層影射為0層即可,這個方法可以刪除具有實體對象或被其它塊嵌套定義的圖層。


          3.打開舊圖遇到異常錯誤而中斷退出怎么辦?
          新建一個圖形文件,而把舊圖以圖塊形式插入即可。


          4.在 AUTOCAD中插入 EXCEL表格的方法。
          復制EXCEL中的內容,然后在CAD中點編輯(EDIT)--選擇性粘貼(PASTE SPECIAL)--AutoCAD圖元--確定--選擇插入點—插入后炸開即可。

          5.在 Word文檔中插入 AutoCAD圖形的發法。
          可以先將AutoCAD圖形拷貝到剪貼板,再在Word文檔中粘貼。須注意的是,由于AutoCAD默認背景顏色為黑色,而Word背景顏色為白色,首先應將AutoCAD圖形背景顏色改成白色(工具-選項-顯示-顏色)。另外,AutoCAD圖形插入Word文檔后,往往空邊過大,效果不理想,可以利用Word圖片工具欄上的裁剪功能進行修整,空邊過大問題即可解決。
          6.將AutoCAD中的圖形插入WORD中有時會發現圓變成了正多邊形怎么辦?


          用VIEWRES命令,將它設得大一些,可改變圖形質量。

          7.將AutoCAD中的圖形插入WORD時線寬問題。
          當需要細線時,請使用小于等于0.25的線寬;當需要粗線時,設置大于0.25的線寬(大于0.25的線在Word里面打印時,打印出來的寬度大于0.5mm)。注意:必須在CAD里面激活線寬顯示,如果從Word里面雙擊編輯過圖片,請重新檢查激活線寬。 當需要的線寬在0.25--0.5之間時,請使用多段線設置寬度。
          8.AutoCAD在XP操作系統下打印時致命錯誤怎么辦?
          這跟AutoCAD 2002及以上版本使用打印戳記有關。在2000版時,增補的打印戳記功能就有很多的BUG,這個功能在2002版本后就直接做為AutoCAD功能。該功能在98操作系統中是完全沒有問題的,但在有些XP系統中就會出錯。所以在XP系統中昀好不要去開啟該功能。如果你已經不幸開啟了該功能而使AutoCAD在打印時出現致命錯誤,解決的方法只能是這樣:在AutoCAD的根目錄下找到AcPltStamp.arx文件,把它改為其它名稱或刪除掉,這樣再進行打印就不會再出錯了,但也少了打印戳記的功能,該方法對于2002版及2004版均有效。
          9.在 AutoCAD2002中移動文字就出錯是什么緣故?
          移動文字時注意不要跨越尺寸線等文本,否則cad就會出現致命錯誤,取消正交繞過這些對象。
          10.打開dwg文件時,系統彈出 “AutoCADMessage”對話框提示 “Drawingfileisnotvalid”,告訴用戶文件不能打開怎么辦?
          這種情況下可以先退出打開操作,然后打開“File”菜單,選“DrawingUtilities/Recover”命令,或者在命令行直接用鍵盤輸入“recover”,接著在“SelectFile”對話框中輸入要恢復的文件,確認后系統開始執行恢復文件操作。


          11.在多行文字( mtext)命令中使用 Word97編輯文本。
          Mtext多行文字編輯器是AutoCADR14中的新增功能,它提供了Windows文字處理軟件所具備的界面和工作方式,它甚至可以利用Word97的強大功能編輯文本,這一功能可以用如下方法實現:打開“Tools”菜單選“Preferences”命令,“Preferences”對話框彈出后,打開“Files/TextEditor,Dictionary, andFontFileName/TextEditorApplication/Internal”,雙擊“Internal”,出現“Selectafile”對話框,接著找到“Winword.exe”應用程序文件,擊“打開”鈕,昀后單擊“OK”返回。完成以上設置后,用戶如再使用mtext命令時系統將自動調用我們熟悉的Word97應用程序,為AutoCAD中的文本錦上添花。
          12.AutoCAD圖導入 photoshop的方法。
          這已經是一個很古老的問題了,解決的方法就是“虛擬打印”!下面一步步地來(為方便大家,采取中英文對照,括號里面是英文版):
          1、打開“文件(file)”菜單下的“打印機管理器(plottermanager)”。
          2、運行“打印機添加向導(Add-A-Plotter Wizard)。
          3、點擊“下一步(next)”,在右邊的選項中選擇“我的電腦(MyComputer)”,繼續“下一步”,進入“打印機型號(Plotter Model)”選擇頁面。
          4、在左邊的“廠商(Manufacturers)”中選擇“光柵文件格式(Raster File Formats)”,這是我們可以看到在右邊的“型號(Model)”中列出了很多種我們熟悉的圖形格式,我習慣于使用JPG格式,選擇“獨立的JPEG編組(Independent JPEG Group JFIF)”,點擊“下一步(next)”,直到完成。這樣我們以后就可以將CAD圖形輸出位JPG格式了。接下來我們來看看該如何使用它。
          5、用CAD做好一幅圖后,我們打開“文件(file)”菜單下的“打印(plotter...)”。在打印對話框中,在打印機類型中選擇我們剛剛裝好的“Independent JPEG Group JFIF”,在下面的“打印到文件(plot to file)”里添上生成的文件名稱和路徑,這個文件就是一個可以再photoshop中編輯的圖形了。在頁面設置中選擇一個我們需要的尺寸,其他的就和使用真正的打印機方法是一樣的。點擊打印后,等幾秒鐘,圖形就生成了。
          注:系統默認的頁面尺寸只有1280*1600,這個尺寸并不能滿足我們的需要。我們可以在打印機的屬性中自定義我們所需要的尺寸。
          Enjoy!補充:如果cad是2004或更高版本,就不用自己裝打印機了,在打印設備中有一個“PublishToWeb JPG.pc3”的打印機,直接用就行了
          6:補充曾老師的一點,如果你想導出純黑色線形記得要在出圖的同時把所有顏色的筆號都改為7號色,這樣就可以導出純黑色的圖了,記得要在PS里把模式改為RGB,這樣圖象會更清晰。
          13.修改完ACAD.PGP文件后,不必重新啟動AUTOCAD立刻加載剛剛修改過的 ACAD.PGP文件的方法。

          鍵入REINIT命令,鉤選PGP,再確定

          14.從備份文件中恢復圖形


          首先要使文件顯示其擴展名(打開我的電腦在工具——文件夾選項——查看—把隱藏已知文件的擴展名前面的鉤去掉);其次要顯示所有文件(打開我的電腦在工具——文件夾選項——查看—隱藏文件和文件夾—選顯示所有文件和文件夾);再次找到備份文件(它的位置可以在工具—選項—文件—臨時圖形文件位置查到),將其重命名為“.DWG”格式;昀后用打開其他CAD文件的方法將其打開即可。
          15. 解決AutoCAD2005不能注冊的方法。

          去掉文件和文件夾的隱藏性。 刪除 C:\Documents and Settings\All Users\Application Data\Autodesk\Software Licenses\B2260000.dat

          16.acad.pgp文件的修改


          XP:到c:\Documents and Settings\自己的用戶名\Application Data\Autodesk\AutoCAD 2004\R16.0\chs\Support\acad.pgp.修改就行了。
          98:到c:\windows\Application Data\Autodesk\AutoCAD 2004\R16.0\chs\Support\acad.pgp.
          17.AUTOCAD中的工具欄不見了怎么辦?

          點工具——選項——配置——重置;也可用命令MENULOAD,然后點擊瀏覽,選擇ACAD.MNC加載即可。

          18.如何關閉CAD中的*BAK文件?


          (1)工具——選項,選“打開和保存”選項卡,再在對話框中將“每次保存均創建備份”即“CREAT BACKUP COPY WITH EACH SAVES”前的對鉤去掉。

          (2)也可以用命令ISAVEBAK,將ISAVEBAK的系統變量修改為0,系統變量為1時,每次保存都會創建“*BAK”備份文件。


          19.如何調整AUTOCAD中繪圖區左下方顯示坐標的框?

          按F6鍵切換。或者將COORDS的系統變量修改為1或者2。系統變量為0時,是指用定點設備指定點時更新坐標顯示。系統變量為1時,是指不斷更新坐標顯示。系統變量為2時,是指不斷更新坐標顯示,當需要距離和角度時,顯示到上一點的距離和角度。

          20.繪圖時沒有虛線框顯示怎么辦?

          修改系統變量DRAGMODE,推薦修改為AUTO。系統變量為ON時,再選定要拖動的對象后,僅當在命令行中輸入DRAG后才在拖動時顯示對象的輪廓;系統變量為OFF時,在拖動時不顯示對象的輪廓;系統變量位AUTO時,在拖動時總是顯示對象的輪廓。


          21.選取對象時拖動鼠標產生的虛框變為實框且選取后留下兩個交叉的點怎么辦?

          將BLIPMODE的系統變量修改為OFF即可。

          22.命令中的對話框變為命令提示行怎么辦?

          將CMDDIA的系統變量修改為1。系統變量為0時,為命令行;系統變量為1時,為對話框。

          23.如何給AutoCAD工具條添加命令及相應圖標?


          以cad2004為例 cad的工具條并沒有顯示所有可用命令,在需要時用戶要自己添加。例如繪圖工具條中默認沒有多線命令(mline),就要自己添加。 做法如下: 視圖->工具欄->命令選項卡,選中繪圖右側窗口顯示相應命令 這時找到“多線”,點左鍵把它脫出,若不放到任何已有工具條中,
          則它以單獨工具條出現;否則成為已有工具條一員。 這時又發現剛拖出的“多線”命令沒有圖標!!就要為他添加圖標。做法如下: 把命令拖出后,不要關閉自定義窗口,單擊“多線”命令,在彈出的面板的右下角,給它選擇相應的圖標! 這時,我們還可以發現,cad允許我們給每個命令自定義圖標。這樣作個個性化工具條就變得easy了!!昀后,要刪除命令,重復以上操作,把要刪除命令拖回,然后在確認要求中選“是”就行了。
          24.怎么修改CAD的快捷鍵?
          CAD2002及以下,直接修改其SUPPORT目錄下的ACAD.PGP文件即可。
          CAD2004是在工具-自定義-編輯自定義文件-程序參數(ACAD.PGP)處
          25.在AutoCAD中有時有交叉點標記在鼠標點擊處產生怎么辦?

          用BLIPMODE命令,在提示行下輸入OFF可消除它。

          26.怎樣控制命令行回顯是否產生?

          將CMDECHO系統變量改為0或1。

          27.快速查出系統變量的方法?

          要記住多達兩三百個變量有一定難度,可以用以下方法查出是哪個變量出了差錯。為敘述方便,將有問題的文件命名為文件1,新建一個文件命名為文件2(昀好新建,因為那樣所有變量都是默認值,也可以用沒問題的文件),分別在兩文件中運行SETVAR,然后選?列出變量,將變量拷到Excel,比較變量中哪些不一樣,這樣可以大大減少查詢變量的時間。舉例:假設一個圖其中變量ANGBASE設為90,那若用程序生成文本的話,所有文本中的字都會旋轉90。現用setvar命令將變量列出,然后將所有變量復制-粘貼到一個Excel文件B列。新建一個文件,再用setvar命令將變量列出,將所有變量復制-粘貼到Excel文件A列,在Excel文件文件C1格輸入“=IF(A1=B1,0,1)”下拉單元格算出所有行的值,然后對C列按遞減排列,這樣,值不相同的變量就集中在前幾列,再分析這些變量,很快就能查出是ANGBASE變量的設置有問題

          28.塊文件不能炸開及不能用另外一些常用命令的問題。


          這是一種在局域網傳播較廣的lisp程序造成的,使幾個常用的命令不能用,塊炸開只能用XP命令。可以有兩種方法解決,一是刪除acad.lsp和acadapp.lsp 文件,大小應該一樣都是3K,然后復制acadr14.lsp兩次,命名為上述兩個文件名,加上只讀,就免疫了。要刪掉你DWG圖形所在目錄的所有lsp文件。不然你會感染別人的。 二是有種專門查殺該病毒的軟件。
          29.如何實現中英文菜單切換使用?

          在AutoCAD中同時保存中英文兩套菜單系統,來回切換是可行的。具體作法是把漢化菜單文件改名為Pacad.mnu,放在AutoCAD安裝目錄下的\SUPPORT子目錄中,當然還別忘了將acad.mnl復制成Pacad.mnl,放?*** acad.mnu同一目錄中。在用中文菜單時,用menu命令加載Pacad;換回英文菜單時就再次使用menu命令加載acad菜單文件。

          30.如何為autocad2004圖形設置密碼?

          工具—選項—打開和保存按紐—安全選項,設置密碼即可,如果取消密碼在此把密碼刪掉即可。


          31.標注時使標注離圖有一定的距離

          執行DIMEXO命令,再輸入數字調整距離。

          32.如何將圖中所有的STANDADN樣式的標注文字改為SIMPLEX樣式?

          可在ACAD.LSP中加一句:(vl-cmdf ".style" "standadn" "simplex.shx")。

          33.重合的線條怎樣突出顯示?

          可以使用工具——顯示順序功能。

          34.如何快速變換圖層?

          點取想要變換到的圖層中的任一元素,然后點擊圖層工具欄的-將對象的圖層置為當前-即可。

          35.在標注文字時,標注上下標的方法:

          使用多行文字編輯命令: 上標:輸入2^,然后選中2^,點a/b鍵即可。
          下標:輸入^2,然后選中^2,點a/b鍵即可。
          上下標:輸入2^2,然后選中2^2,點a/b鍵即可。
          36.如何特殊符號?

          打開多行文字編輯器-在輸入文字的矩形框里點右鍵-選符號-其它打開字符映射表-選擇符號即可。注意字符映射表的內容取決于用戶在“字體”下拉列表中選擇的字體。

          37.如何用break命令在一點打斷對象?

          執行break命令,在提示輸入第二點時,可以輸入@再回車,這樣即可在第一點打斷選定對象。

          38.使用編輯命令時多選了某個圖元如何去掉?

          在命令未結束下按住shift鍵選擇多選的圖元即可,很方便的喔。

          39.“!”鍵的使用。

          假設屏幕上有一條已知長度的線(指單線、多義線,未知長度當然也可以),且與水平方向有一定的角度,要求將它縮短一定的長度且方向不變,操作過程如下:直接選取該線,使其夾點出現,將光標移動到要縮短的一端并激活該夾點,使這條線變為可拉伸的皮筋線,將光標按該線的方向移動,使皮筋線和原線段重合,移動的距離沒有限制,有人覺得移動的方向不能和原來一樣那么就用輔助點捕捉命令,輸入“捕捉到昀近點(即near命令)”,然后在 “near 到(即near to)”的提示后輸入“!XX”(XX為具體數值)后回車,該線的長度就改變了。很放便的呦!!!

          40.圖形的打印技巧。


          由于沒有安裝打印機或想用別人高檔打印機輸入AutoCAD圖形,需要到別的計算機去打印AutoCAD圖形,但是別的計算機也可能沒安AutoCAD,或者因為各種原因(例:AutoCAD圖形在別的計算機上字體顯示不正常,通過網絡打印,網絡打印不正常等),不能利用別的計算機進行正常打印,這時,可以先在自己計算機上將AutoCAD圖形打印到文件,形成打印機文件,然后,再在別的計算機上用DOS的拷貝命令將打印機文件輸出到打印機,方法為:copy <打印機文件> prn /b,須注意的是,為了能使用該功能,需先在系統中添加別的計算機上特定型號打印機,并將它設為默認打印機,另外,COPY后不要忘了在昀后加/b,表明以二進制形式將打印機文件輸出到打印機。


          41.質量屬性查詢。

          AutoCAD提供點坐標(ID),距離(Distance),面積(area)的查詢,給圖形的分析帶來了很大的方便,但是在實際工作中,有時還須查詢實體質量屬性特性,AutoCAD提供實體質量屬性查詢(Mass Properties),可以方便查詢實體的慣性矩、面積矩、實體的質心等,須注意的是,對于曲線、多義線構造的閉合區域,應先用region命令將閉合區域面域化,再執行質量屬性查詢,才可查詢實體的慣性矩、面積矩、實體的質心等屬性

          42.如何計算二維圖形的面積?

          1.對于簡單圖形,如矩形、三角形。只須執行命令AREA(可以是命令行輸入或點擊對應命令圖標),在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,打開捕捉依次選取矩形或三角形各交點后回車,AutoCAD將自動計算面積(Area)、周長(Perimeter),并將結果列于命令行。

          2.對于簡單圖形,如圓或其它多段線(Polyline)、樣條線(Spline)組成的二維封閉圖形。執行命令AREA,在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,選擇Object選項,根據提示選擇要計算的圖形,AutoCAD將自動計算面積、周長。

          3.對于由簡單直線、圓弧組成的復雜封閉圖形,不能直接執行AREA命令計算圖形面積。必須先使用region命令把要計算面積的圖形創建為面域,然后再執行命令AREA,在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,選擇Object選項,根據提示選擇剛剛建立的面域圖形,AutoCAD將自動計算面積、周長。


          43.如何設置線寬?


          要想改變AutoCAD對象線寬有很多種方法。昀常的辦法是是用圖形屏幕上實體的顏色來得到不同的出圖線寬。也就是說在畫圖的時候不同類型的圖形根據自己的需要畫成不同的顏色。然后在打印輸出時設置不同顏色不同的線寬。方法如下:點擊“File”菜單,選擇“Print”,或按“Ctrl+P”,這時會彈出對話框“Print/Plot Configuration”。在“Pen Parameters”中點擊“Pen Assignment”。彈出“Pen Assignment”對話框,在這里可以對每種顏色號碼,指定筆號,并且選擇合適的筆寬。這里先給大家介紹一下筆寬的大小是怎么決定的。筆寬的大小主要由打印設備分辨率和打印點之間的寬度決定的,公式為<點距>/<設備分辨率>。AutoCAD將用這些標準值來代替我們隨意輸入的值。 下面列舉了幾種常見打印機的昀小的筆寬:
          HP Laserjet III 打印機系列用1/300 Canon BubbleJet 噴墨打印機系列用1/360 HP LaserJet IV 打印機系列用1/600 新的Canon BubbleJet 噴墨打印機用1/720
          明白了以上的道理,我們就可以在“Pen Assignment”對話框中根據需要填寫線型寬度的值了。比如一號顏色用“1/300”,二號顏色就用“2/300”,等等。系統自動會算出相近的小數值
          44.關于線寬的問題。

          LineWeight線寬是絕對線寬,而多義線線寬是相對線寬,也就是說,無論圖形以多大尺寸打印LineWeight線寬都不變,而多義線線寬則隨打印尺寸比例大小變化而變化,無論實體被縮放多少倍,LineWeight線寬都不變,而多義線線寬則隨縮放比例改變而改變。

          45.[TAB]鍵在AutoCAD捕捉功能中的巧妙利用。

          當需要捕捉一個物體上的點時,只要將鼠標靠近某個或某物體,不斷的按TAb鍵,這個或這些物體的某些特殊點(如直線的端點、中間點、垂直點、與物體的交點、圓的四分圓點、中心點、切點、垂直點、交點)就回輪換顯示出來,選擇需要的點左鍵單擊即可以捕中這些點。注意當鼠標靠近兩個物體的交點附近時這兩個物體的特殊點將先后輪換顯示出來(其所屬物體會變為虛線),這對于在圖形局部較為復雜時捕捉點很有用。

          46.橢圓命令生成的橢圓是多義線還是實體?

          由系統變量 PELLIPSE決定,當其為1時,生成的橢圓是多義線。

          47.一些常用快捷鍵。


          F1: 獲取幫助 F2: 實現作圖窗和文本窗口的切換 F3: 控制是否實現對象自動捕捉 F4: 數字化儀控制 F5: 等軸測平面切換 F6: 控制狀態行上坐標的顯示方式 F7: 柵格顯示模式控制 F8: 正交模式控制 F9: 柵格捕捉模式控制 F10: 極軸模式控制 F11: 對象追蹤式控制 Ctrl+B: 柵格捕捉模式控制(F9) Ctrl+C: 將選擇的對象復制到剪切板上 Ctrl+F: 控制是否實現對象自動捕捉(f3) Ctrl+G: 柵格顯示模式控制(F7) Ctrl+J: 重復執行上一步命令 Ctrl+K: 超級鏈接 Ctrl+N: 新建圖形文件 Ctrl+M: 打開選項對話框 Ctrl+1: 打開特性對話框 Ctrl+2: 打開圖象資源管理器 Ctrl+6: 打開圖象數據原子 Ctrl+ 打開圖象文件 Ctrl+P: 打開打印對說框 Ctrl+S: 保存文件 Ctrl+U: 極軸模式控制(F10) Ctrl+v: 粘貼剪貼板上的內容 Ctrl+W: 對象追 蹤式控制(F11) Ctrl+X: 剪切所選擇的內容 Ctrl+Y: 重做 Ctrl+Z: 取消前一步的操作
          48.模擬空間與圖紙空間。
          AutoCAD有兩個不同的空間:即模型空間和圖紙空間(通過使用LAYOUT標簽)。
          模型空間中視口的特征:    1、在模型空間中,可以繪制全比例的二維圖形和三維模型,并帶有尺寸標注。    2、模型空間中,每個視口都包含對象的一個視圖。例如:設置不同的視口會得到俯視圖、正視圖、側視圖和立體圖等。    3、用VPORTS命令創建視口和視口設置,并可以保存起來,以備后用。    4、視口是平鋪的,它們不能重疊,總是彼此相鄰。    5、在某一時刻只有一個視口處于激活狀態,十字光標只能出現在一個視口中,并且也只能編輯該活動的視口(平移、縮放等)。    6、只能打印活動的視口;如果UCS圖標設置為ON,該圖標就會出現在每個視口中。    7、系統變量MAXACTVP決定了視口的范圍是2到64。 圖紙空間中視口的特征:    1、狀態欄上的PAPER取代了MODEL。    2、VPORTS、PS、MS、和VPLAYER命令處于激活狀態。(只有激活了MS命令后,才可使用PLAN、VPOINT和DVIEW命令)。    3、視口的邊界是實體。可以刪除、移動、縮放、拉伸視口。    4、視口的形狀沒有限制。例如:可以創建圓形視口、多邊形視口等。    5、視口不是平鋪的,可以用各種方法將它們重疊、分離。    6、每個視口都在創建它的圖層上,視口邊界與層的顏色相同,但邊界的線型總是實線。出圖時如不想打印視口, 可將其單獨置于一圖層上,凍結即可。    7、可以同時打印多個視口。    8、十字光標可以不斷延伸,穿過整個圖形屏幕,與每個視口無關。    9、可以通過MVIEW命令打開或關閉視口;SOLVIEW命令創建視口或者用VPORTS命令恢復在模型空間中保存的視口。在缺省狀態下,視口創建后都處于激活狀態。關閉一些視口可以提高重繪速度。    10、在打印圖形且需要隱藏三維圖形的隱藏線時,可以使用MVIEW命令>HIDEPLOT拾取要隱藏的視口邊界,即可。    11、系統變量MAXACTVP決定了活動狀態下的視口數是64。    通過上述的講解,相信大家對這兩個空間已經有了明確的認識,但切記:當我們第一次進入圖紙空間時,看不見視口,必須用VPORTS或MVIEW命令創建新視口或者恢復已有的視口配置(一般在模型空間保存)。可以利用MS和PS命令在模型空間和LAYOUT(圖紙空間)中來回切換。
          49.如何畫曲線?

          ---- 在繪制圖樣時,經常遇到畫截交線、相貫線及其他曲線的問題。手工繪制很麻煩,要找特殊點和一定數量一般點,且連出的曲線誤差大。用AutoCAD 2000繪制平面曲線或空間曲線卻很容易。 ---- 方法一:用Pline命令畫2D圖形上通過特殊點的折線,經Pedit命令中Fit或Spline曲線擬合,可變成光滑的平面曲線。用3Dpoly命令畫3D圖形上通過特殊點的折線,經Pedit命令中Spline曲線擬合,可變成光滑的空間曲線。 ---- 方法二:用Solids命令創建三維基本實體(長方體、圓柱、圓錐、球等),再經Boolean(布爾)組合運算:交、并、差和干涉等獲得各種復雜實體,然后利用下拉菜單View(視圖)/3D Viewpoint(三維視點),選擇不同視點來產生標準視圖,得到曲線的不同視圖投影。

          50.在AutoCAD中采用什么比例繪圖好?


          昀好使用1∶1比例畫,輸出比例可以隨便調整。畫圖比例和輸出比例是兩個概念,輸出時使用“輸出1單位=繪圖500單位”就是按1/500比例輸出,若“輸出10單位=繪圖1單位”就是放大10倍輸出。用1∶1比例畫圖好處很多。第一、容易發現錯誤,由于按實際尺寸畫圖,很容易發現尺寸設置不合理的地方。第二、標注尺寸非常方便,尺寸數字是多少,軟件自己測量,萬一畫錯了,一看尺寸數字就發現了(當然,軟件也能夠設置尺寸標注比例,但總得多費工夫)。第三、在各個圖之間復制局部圖形或者使用塊時,由于都是1∶1比例,調整塊尺寸方便。第四、由零件圖拼成裝配圖或由裝配圖拆畫零件圖時非常方便。第五、用不著進行煩瑣的比例縮小和放大計算,提高工作效率,防止出現換算過程中可能出現的差錯。


          51.如何在AutoCAD中用自定義圖案來進行填充?
          AutoCAD的填充圖案都保存在一個名為acad.pat的庫文件中,其缺省路徑為安裝目錄的\Acad2000\Support目錄下。我們可以用文本編輯器對該文件直接進行編輯,添加自定義圖案的語句;也可以自己創建一個*.Pat文件,保存在相同目錄下,CAD均可識別。
          下面,我們就以新創建一個菱形花紋鋼板圖案庫文件為例,來說明AutoCAD 2000中自定義圖案的方法。
          首先,在CAD中按國標作出菱形花紋圖案,并標注各部分尺寸
          參看下面的庫文件標準格式:
          *pattern-name [, description]
          angle, x-origin, y-origin, delta-x, delta-y [, dash-1, dash-2, ...]
          第一行為標題行。星號后面緊跟的是圖案名稱,執行HATCH命令選擇圖案時,將顯示該名稱。方括號內是圖案由 HATCH 命令的“?”選項顯示時的可選說明。如果省略說明,則圖案名稱后不能有逗號。
          第二行為圖案的描述行。可以有一行或多行。其含義分別為:直線繪制的角度,填充直線族中的一條直線所經過的點的X、Y軸坐標,兩填充直線間的位移量,兩填充直線的垂直間距,dash-n為一條直線的長度參數,可取正負值或為零,取正值表示該長度段為實線,取負值表示該段為留空,取零則畫點。
          好了,我們可以開始編輯了。打開記事本,書寫下如下:
          *custom, steel plate GB/T3277-1991
          68.4667, 0, 0, -9.8646, 25, 30.0213, -6.59
          111.5333, 0, 0, 9.8646, 25, 30.0213, -6.59
          68.4667, -11.0191, 27.926, -9.8646, 25, 30.0213, -6.59
          111.5333, 11.0191, 27.926, 9.8646, 25, 30.0213, -6.59
          本例中的四行圖案描敘行分別對應圖一中的線段a、b、c、d。對照圖文,各項取值應不難理解。這里只著重講敘一下delta-x與delta-y的取值規則,為方便理解,我們如圖示設置UCS坐標系,確定原點與X軸正方向。線段a、e在Y軸上的垂直間距25構成delta-y,也相當于AutoCAD中的offset命令的取值25;如果線段e是由線段a經offset而來,這時線段e同時還相對于線段a沿X軸負方向移動了9.8646,這段位移也就是delta-x。
          下面還有幾個注意事項:
          圖案定義文件的每一行昀多可包含 80 個字符。
          AutoCAD 忽略空行和分號右邊的文字。根據這一條,我們可以在文件中添加版權信息、備注或者是我們想加入的任何內容。例如:
          ;Copyright (c) 2000 by everyone. All rights reserved.
          昀后,將文件保存,取名custom.Pat。注意,文件名必須與圖案名相同。
          到此,相信各位朋友已經掌握了自定義圖案的方法。現在,只需一點點耐心,你就可以編輯出非常復雜的圖案了。
          調用庫文件的方法為:附頁為我做的填充圖樣及文件,解壓縮放在\Acad2000\Support目錄下。打開AutoCAD,運行Hatch命令,在彈出的Boundary Hatch對話框的Type欄選中Custom,單擊Swatch選項欄,彈出Hatch Pattern Palette對話框,選擇Custom標簽,指定我們剛創建的custom.Pat文件,此時右側出現填充效果的預覽,那正是我們需要的菱形花紋鋼板圖案。
          52.怎樣用trim命令同時修剪多條線段?

          例如:直線AB與四條平行線相交,現在要剪切掉直線AB右側的部分,執行trim命令,在提示行顯示選擇對象時選擇AB并回車,然后輸入F并回車,然后在AB右側畫一條直線并回車,OK了。

          53.怎樣擴大繪圖空間?


          1、提高系統顯示分辨率
          2、設置顯示器屬性中的“外觀”,改變圖標、滾動條、標題按 鈕、文字等的大小
          3、去掉多余部件,如屏幕菜單、滾動條和不常用的工具條。去掉屏幕菜單、滾動條可在 “preferences”對話框“Display”頁(見第 四條操作)“Drawing Window Parameters”選項中進行選擇。
          4、設定系統任務欄自動消隱、把命令行盡量縮小。
          5、在顯示器屬性“設置”頁中,把桌面(desktop)大小設定大于屏幕(screen)大小的一到二個級別,便可在超大的活動空間里圖了。
          54.怎么把圖紙用WORD打印出來?

          word里有對象插入,其中一個就是AutoCAD 圖形,插入前別忘了在AutoCAD里把圖形的背景顏色改為白色(工具-選項-顯示-顏色里面改),否則打出來圖形有填充色,看不見圖形。

          55.命令前加“-”與不加“-”的區別

          加“-”與不加“-”在AUTOCAD中的意義是不一樣的,加“-”是AUTOCAD2000以后為了使各種語言版本的指令有統一的寫法而制定的相容指令。命令前加“-”是該命令的命令行模式,不加就是對話框模式,具體一點說:前面加“-”后,命令運行時不出現對話框模式,所有的命令都是在命令行中輸入的,不加“-”命令運行時會出現對話框,參數的輸入在對話框中進行。

          56.怎樣對兩個圖進行對比檢查?

          可以把其中一個圖做成塊,并把顏色改為一種鮮艷顏色,如黃色,然后把兩個圖重迭起來,若有不一致的地方就很容易看出來。

          57.多段線的寬度問題。

          當pline線設置成寬度不為0時,打印時就按這個線寬打印。如果這個多段線的寬度太小,就出不了寬度效果。(如以毫米為單位繪圖,設置多段線寬度為10,當你用1:100的比例打印時,就是0.1毫米。)所以多段線的寬度設置要考慮打印比例才行。而寬度是0時,就可按對象特性來設置(與其他對象一樣)。

          58.在模型空間里畫的是虛線,打印出來也是虛線,可是怎么到了布局里打印出來就變成實線了呢?在布局里怎么打印虛線?

          估計是改變了線形比例,同時是采用的“比例到圖紙空間”的方法(這是 CAD的默認方法)。在線形設置對話框中把“比例到圖紙空間”前的鉤去掉。

          59.怎樣把多條直線合并為一條?

          用 Group命令可以完成。

          60.怎樣把多條線合并為多段線?

          用 PEDIT命令,此命令中有合并選項。

          61.當AUTOCAD發生錯誤強行關閉后重新啟動AUTOCAD時,出現以下現象:文件 ——打開命令無法彈出窗口讓選擇文件了,輸出文件時也類似時怎么辦?

          應該修改FILEDIA變量。

          62.如何在修改完ACAD.LSP后自動加載?

          可以將ACADLSPASDOC的系統變量修改為1。

          63.如何修改尺寸標注的比例?


          方法一:DIMSCALE決定了尺寸標注的比例其值為整數,缺省為1,在圖形有了一定比例縮放時應昀好將其改為縮放比例。
          方法二:格式——標注樣式(選擇要修改的標注樣式)——修改——主單位——比例因子,修改即可。
          64.如何控制實體顯示?
          以AutoCAD2000為例 常用鍵盤輸入三個系統變量控制實體的顯示。
          ISOLINES:缺省時實體以線框方式顯示,實體上每個曲面以分格線的形式表述。分格線數目由該系統變量控制,有效值為0—2047,初始值為4。分格線數值越大,實體越易于觀察,但是等待顯示時間加長。
          DISPSILH:該變量控制實體輪廓邊的顯示,取值0或1,缺省值為0,不顯示輪廓邊,設置為1,則顯示輪廓邊。
          FACETRES:該變量調節經HIDE(消隱)、SHADE(著色)、RENDER(渲染)后的實體的平滑度,有效值為0.01—10.0,缺省值為0.5。其值
          越大,顯示越光滑,但執行HIDE、SHADE、RENDER命令時等待顯示時間加長。通常在進行昀終輸出時,才增大其值。
          65.鼠標中鍵的用法。

          1.Ctrl+鼠標中鍵可以實現類似其他軟件的游動漫游。

          2.雙擊鼠標中鍵相當于ZOOM E。


          66.多重復制總是需要輸入M,如何簡化?


          可以在acad.lsp文件中添加程序實現不必輸入M,方法是:
          (defun C:CVV ()
          (setvar "cmdecho" 0)
          (setq css (ssget)) (command "copy" css "" "m")
          (setq css nil) (setvar "cmdecho" 1)
          (prin1) )
          即輸入CVV回車,即可實現多重復制。
          67.對圓進行打斷操作時的方向問題。

          AUTOCAD會沿逆時針方向將圓上從第一斷點到第二斷點之間的那段圓弧刪除。

          68.如何快速為平行直線作相切半圓?

          用圓角 FILLET 命令,比先畫相切圓然后再剪切的作法快10倍。

          69.如何快速輸入距離?

          在定位點的提示下,輸入數字值,將下一個點沿光標所指方向定位到指定的距離,此功能通常在 “正交”或“捕捉”模式打開的狀態下使用。例如:執行命令:line;指定第一點: 指定點 ;指定下一點: 將光標移到需要的方向并輸入 5,回車即可。

          70.如何使變得粗糙的圖形恢復平滑?

          有時候圖形經過縮放或zoom后,圖形會變得粗糙,如圓變成了多邊形,可以用重生成命令(regen)來恢復平滑狀態。


          71.怎樣測量某個圖元的長度?



          方法一:用測量單位比例因子為1的線性標注或對齊標注。
          方法二:用dist命令。
          方法三:用list命令。推薦使用。
          72.如何改變十字光標尺寸?

          工具——選項——顯示——十字光標大小,調整就可以了。

          73.如何改變拾取框的大小?

          工具——選項——選擇——拾取框大小,調整就可以了。

          74.如何改變自動捕捉標記的大小?

          工具——選項——草圖——自動捕捉標記大小,調整就可以了。

          75.復制圖形粘貼后總是離的很遠怎么辦?

          復制時使用帶基點復制:點編輯——帶基點復制。

          76.如何測量帶弧線的多線段長度?

          用列表命令(list)!

          77.為什么堆疊按鈕不可用?

          堆疊的使用:一是要有堆疊符號(#、^、/);二是要把堆疊的內容選中后才可以操作。

          78.面域、塊、實體是什么概念?

          面域是用閉合的外形或環創建的二維區域;塊是可組合起來形成單個對象(或稱為塊定義)的對象集合(一張圖在另一張圖中一般可作為塊);實體有兩個概念,其一是構成圖形的有形的基本元素,其二是指三維物體.對于三維實體,可以使用"布爾運算"使之聯合,對于廣義的實體,可以使用"塊"或"組(group)"進行"聯合"。

          79.什么是DXF文件格式?


          DXF-Drawing Exchange File(圖形交換文件), 這是一種ASCII文本文件,它包含對應的DWG文件的全部信息,不是ASCII碼形式,可讀性差,但用它形成圖形速度快.不同類型的計算機(如PC及其兼容機與SUN工作站具體不同的CPU用總線)哪怕是用同一版本的文件,其DWG文件也是不可交換的. 為了克服這一缺點,AutoCAD提供了DXF類型文件,其內部為ASCII碼,這樣不同類型的計算機可通過交換DXF文件來達到交換圖形的目的,由于DXF文件可讀性好,用戶可方便地對它進行修改,編程,達到從外部圖形進行編輯,修改的目的。
          80.什么是acad“啞圖”?

          只有圖線和尺寸線,而沒有尺寸數值的現成的圖紙。這是以前生產中的偷懶做法,現在用計算機制圖應該不提倡這樣做。

          81.底版本的AutoCAD怎樣打開高版本的圖?

          轉換一下,可以用轉換軟件;或叫發給你的人存為低版本的格式再打開。

          82.解決安裝cad2002后控制面板中有大塊白的現象。

          方法如下:打開[開始]-----在[運行]框里輸入regedit,打開注冊表編輯器,找到下面項 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{5783F2D7-0101-0804-0002-0060B0CE6BBA},修改DisplayIcon,把“AutoCAD 2002安裝目錄\acad.exe,-1”中的-1,改為1。即可解決控制面板中刪除里面有一大塊白的現象。

          83.如何使圖形只能看而不能修改?

          要是自己的圖把它全部圖層鎖定就行了,打開不會變的;如果以后不想用了,就把里面所有東西都炸碎也可以;還有一種方法是用lisp語言寫個加密程序,一旦運行后,圖就只能看,怎么也改不了了。

          84.如何修改尺寸標注的關聯性?


          改為關聯:選擇需要修改的尺寸標注,執行DIMREASSOCIATE命令即可.
          改為不關聯: 選擇需要修改的尺寸標注,執行DIMDISASSOCIATE命令即可.
          85.由*.T轉化為*.dwg后,漢字如何更改長寬比?

          文字屬性:

          改為:

          也可以在CAD2004特性里改:對正和方向.

          家好,我是Echa。

          創作不易,喜歡的老鐵們加個關注,點個贊,后面會持續更新干貨,速速收藏,謝謝!

          在現在的時代發展中,從以前的手寫簽名,逐漸衍生出了電子簽名。電子簽名和紙質手寫簽名一樣具有法律效應。電子簽名目前主要還是在需要個人確認的產品環節和司法類相關的產品上較多。

          舉個常用的例子,大家都用過釘釘,釘釘上面就有電子簽名,相信大家這肯定是知道的。

          那作為前端的我們如何實現電子簽名呢?其實在html5中已經出現了一個重要級別的輔助標簽,是啥呢?那就是canvas。下面我給大家分享分享幾個關于前端如何實現電子簽名經典案例以及實現方法。

          什么是canvas

          Canvas(畫布)是在HTML5中新增的標簽用于在網頁實時生成圖像,并且可以操作圖像內容,基本上它是一個可以用JavaScript操作的位圖(bitmap)。Canvas 對象表示一個 HTML 畫布元素 -。它沒有自己的行為,但是定義了一個 API 支持腳本化客戶端繪圖操作。

          大白話就是canvas是一個可以在上面通過javaScript畫圖的標簽,通過其提供的context(上下文)及Api進行繪制,在這個過程中canvas充當畫布的角色。

          實現電子簽名

          知道幾何的朋友都很清楚,線由點繪成,面由線繪成。

          多點成線,多線成面。

          所以我們實際只需要拿到當前觸摸的坐標點,進行成線處理就可以了。

          全文大綱

          • vue-sign-canvas 一個基于canvas開發,封裝于Vue組件的通用手寫簽名板
          • Signature Pad 是一個用于繪制平滑簽名的JavaScript庫。
          • 純JavaScript實現電子簽名,同時支持Web端和移動端。

          vue-sign-canvas

          在線預覽:https://langyuxiansheng.github.io/vue-sign-canvas/

          Github:https://github.com/langyuxiansheng/vue-sign-canvas

          vue-sign-canvas 一個基于canvas開發,封裝于Vue組件的通用手寫簽名板(電子簽名板),支持pc端和移動端,屬性支持自定義配置

          組件模板使用

          <template>
              <div id="app">
                  <h2 class="title">Vue Sign Canvas 電子簽名板</h2>
                  <sign-canvas class="sign-canvas" ref="SignCanvas" :options="options" v-model="value" />
                  <img v-if="value" class="view-image" :src="value" width="150" height="150" />
                  <div class="config">
                      <ul class="ul-config">
                          <li class="li-c">
                              <span class="item-label">書寫速度:</span>
                              <span class="item-content">
                                  <select name="isSign" v-model="options.isSign">
                                      <option :value="true">簽名</option>
                                      <option :value="false">寫字</option>
                                  </select>
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">顯示邊框/網格:</span>
                              <span class="item-content">
                                  <select name="isSign" v-model="options.isShowBorder">
                                      <option :value="true">顯示</option>
                                      <option :value="false">不顯示</option>
                                  </select>
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">兼容高倍屏高清繪制:</span>
                              <span class="item-content">
                                  <select name="isSign" v-model="options.isDpr">
                                      <option :value="true">啟用</option>
                                      <option :value="false">關閉</option>
                                  </select>
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">邊框寬度:</span>
                              <span class="item-content">
                                  <input v-model="options.borderWidth" type="number" />
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">下筆寬度:</span>
                              <span class="item-content">
                                  <input v-model="options.writeWidth" type="number" />
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">圖片類型:</span>
                              <span class="item-content">
                                  <input v-model="options.imgType" type="text" />
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">線條的邊緣類型:</span>
                              <span class="item-content">
                                  <select name="lineCap" v-model="options.lineCap">
                                      <option value="butt">平直的邊緣</option>
                                      <option value="round">圓形線帽</option>
                                      <option value="square">正方形線帽</option>
                                  </select>
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">線條交匯時邊角的類型:</span>
                              <span class="item-content">
                                  <select name="lineCap" v-model="options.lineJoin">
                                      <option value="bevel">創建斜角</option>
                                      <option value="round">創建圓角</option>
                                      <option value="miter">創建尖角</option>
                                  </select>
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">畫筆顏色:</span>
                              <span class="item-content">
                                  <input type="color" v-model="options.writeColor" />
                              </span>
                          </li>
                          <li class="li-c">
                              <span class="item-label">背景色:</span>
                              <span class="item-content">
                                  <input type="color" v-model="options.bgColor" />
                              </span>
                          </li>
                      </ul>
                  </div>
                  <div class="sign-btns">
                      <span id="clear" @click="canvasClear()">清空</span>
                      <span id="save" @click="saveAsImg()">保存</span>
                      <span id="save" @click="downloadSignImg()">下載</span>
                  </div>
              </div>
          </template>
          <script>
              import SignCanvas from "../packages";
              export default {
                  components: { SignCanvas },
                  data() {
                      return {
                          value: null,
                          options: {
                              isDpr: false, //是否使用dpr兼容高倍屏 [Boolean] 可選
                              lastWriteSpeed: 1, //書寫速度 [Number] 可選
                              lastWriteWidth: 2, //下筆的寬度 [Number] 可選
                              lineCap: "round", //線條的邊緣類型 [butt]平直的邊緣 [round]圓形線帽 [square]	正方形線帽
                              lineJoin: "bevel", //線條交匯時邊角的類型  [bevel]創建斜角 [round]創建圓角 [miter]創建尖角。
                              canvasWidth: 350, //canvas寬高 [Number] 可選
                              canvasHeight: 370, //高度  [Number] 可選
                              isShowBorder: true, //是否顯示邊框 [可選]
                              bgColor: "#fcc", //背景色 [String] 可選
                              borderWidth: 1, // 網格線寬度  [Number] 可選
                              borderColor: "#ff787f", //網格顏色  [String] 可選
                              writeWidth: 5, //基礎軌跡寬度  [Number] 可選
                              maxWriteWidth: 30, // 寫字模式最大線寬  [Number] 可選
                              minWriteWidth: 5, // 寫字模式最小線寬  [Number] 可選
                              writeColor: "#101010", // 軌跡顏色  [String] 可選
                              isSign: true, //簽名模式 [Boolean] 默認為非簽名模式,有線框, 當設置為true的時候沒有任何線框
                              imgType: "png", //下載的圖片格式  [String] 可選為 jpeg  canvas本是透明背景的
                          },
                      };
                  },
                  methods: {
                      /**
                       * 清除畫板
                       */
                      canvasClear() {
                          this.$refs.SignCanvas.canvasClear();
                      },
          
                      /**
                       * 保存圖片
                       */
                      saveAsImg() {
                          const img = this.$refs.SignCanvas.saveAsImg();
                          alert(`image 的base64:${img}`);
                      },
          
                      /**
                       * 下載圖片
                       */
                      downloadSignImg() {
                          this.$refs.SignCanvas.downloadSignImg();
                      },
                  },
              };
          </script>
          <style lang="less">
              * {
                  margin: 0;
                  padding: 0;
              }
              .title {
                  padding: 20px;
                  text-align: center;
              }
              .sign-canvas {
                  display: block;
                  margin: 20px auto;
              }
              .view-image {
                  display: block;
                  margin: 20px auto;
              }
              .config {
                  width: 350px;
                  margin: 20px auto;
                  .ul-config {
                      .li-c {
                          display: flex;
                          align-items: center;
                          padding: 4px 10px;
                          .item-label {
                              font-size: 14px;
                          }
                          .item-content {
                              margin-left: 10px;
                          }
                      }
                  }
              }
              .sign-btns {
                  display: flex;
                  justify-content: space-between;
                  #clear,
                  #clear1,
                  #save {
                      display: inline-block;
                      padding: 5px 10px;
                      width: 76px;
                      height: 40px;
                      line-height: 40px;
                      border: 1px solid #eee;
                      background: #e1e1e1;
                      border-radius: 10px;
                      text-align: center;
                      margin: 20px auto;
                      cursor: pointer;
                  }
              }
          </style>

          橫屏全屏模式下簽名要怎么顯示?

          <div class="user-sign">
              <template v-if="sign">
                  <img class="sign-image" :src="sign" alt="" srcset="" />
              </template>
          </div>
          
          <script>
              //局部注冊
              import SignCanvas from "sign-canvas";
              import util from "@util";
              import { saveSignature } from "@/http";
              export default {
                  name: "UserSign",
                  components: { SignCanvas },
                  data() {
                      return {
                          sign: null,
                      };
                  },
              };
          </script>
          <style lang="scss" scoped>
              .user-sign {
                  background: #e7e7e7;
                  height: 9.375rem;
                  position: relative;
          
                  .sign-image {
                      margin: 0 auto;
                      z-index: 9;
                      height: 100%;
                      transform: rotate(-90deg) scale(1.5);
                      display: block;
                  }
              }
          </style>

          如下圖:




          Signature Pad

          在線預覽:http://szimek.github.io/signature_pad/

          Github:https://github.com/szimek/signature_pad

          Signature Pad是一個用于繪制平滑簽名的JavaScript庫。它基于HTML5畫布,使用基于Square發布的Smoother Signatures的可變寬度Bézier曲線插值。它適用于所有現代桌面和移動瀏覽器,不依賴任何外部庫。

          核心代碼:

          const canvas = document.querySelector("canvas");
          
          const signaturePad = new SignaturePad(canvas);
          
          // Returns signature image as data URL (see https://mdn.io/todataurl for the list of possible parameters)
          signaturePad.toDataURL(); // save image as PNG
          signaturePad.toDataURL("image/jpeg"); // save image as JPEG
          signaturePad.toDataURL("image/jpeg", 0.5); // save image as JPEG with 0.5 image quality
          signaturePad.toDataURL("image/svg+xml"); // save image as SVG data url
          
          // Return svg string without converting to base64
          signaturePad.toSVG(); // "<svg...</svg>"
          signaturePad.toSVG({includeBackgroundColor: true}); // add background color to svg output
          
          // Draws signature image from data URL (mostly uses https://mdn.io/drawImage under-the-hood)
          // NOTE: This method does not populate internal data structure that represents drawn signature. Thus, after using #fromDataURL, #toData won't work properly.
          signaturePad.fromDataURL("data:image/png;base64,iVBORw0K...");
          
          // Draws signature image from data URL and alters it with the given options
          signaturePad.fromDataURL("data:image/png;base64,iVBORw0K...", { ratio: 1, width: 400, height: 200, xOffset: 100, yOffset: 50 });
          
          // Returns signature image as an array of point groups
          const data = signaturePad.toData();
          
          // Draws signature image from an array of point groups
          signaturePad.fromData(data);
          
          // Draws signature image from an array of point groups, without clearing your existing image (clear defaults to true if not provided)
          signaturePad.fromData(data, { clear: false });
          
          // Clears the canvas
          signaturePad.clear();
          
          // Returns true if canvas is empty, otherwise returns false
          signaturePad.isEmpty();
          
          // Unbinds all event handlers
          signaturePad.off();
          
          // Rebinds all event handlers
          signaturePad.on();

          如下圖:


          純JavaScript實現電子簽名

          完整版:

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <style>
                  * {
                      margin: 0;
                      padding: 0;
                  }
              </style>
          </head>
          <body>
              <canvas></canvas>
              <div>
                  <button onclick="cancel()">取消</button>
                  <button onclick="save()">保存</button>
              </div>
          </body>
          <script>
              // 配置內容
              const config = {
                  width: 400, // 寬度
                  height: 200, // 高度
                  lineWidth: 5, // 線寬
                  strokeStyle: 'red', // 線條顏色
                  lineCap: 'round', // 設置線條兩端圓角
                  lineJoin: 'round', // 線條交匯處圓角
              }
          
              // 獲取canvas 實例
              const canvas = document.querySelector('canvas')
              // 設置寬高
              canvas.width = config.width
              canvas.height = config.height
              // 設置一個邊框
              canvas.style.border = '1px solid #000'
              // 創建上下文
              const ctx = canvas.getContext('2d')
          
              // 設置填充背景色
              ctx.fillStyle = 'transparent'
              // 繪制填充矩形
              ctx.fillRect(
                  0, // x 軸起始繪制位置
                  0, // y 軸起始繪制位置
                  config.width, // 寬度
                  config.height // 高度
              );
          
              // 保存上次繪制的 坐標及偏移量
              const client = {
                  offsetX: 0, // 偏移量
                  offsetY: 0,
                  endX: 0, // 坐標
                  endY: 0
              }
          
              // 判斷是否為移動端
              const mobileStatus = (/Mobile|Android|iPhone/i.test(navigator.userAgent))
          
              // 初始化
              const init = event => {
                  // 獲取偏移量及坐標
                  const { offsetX, offsetY, pageX, pageY } = mobileStatus ? event.changedTouches[0] : event 
          
                  // 修改上次的偏移量及坐標
                  client.offsetX = offsetX
                  client.offsetY = offsetY
                  client.endX = pageX
                  client.endY = pageY
          
                  // 清除以上一次 beginPath 之后的所有路徑,進行繪制
                  ctx.beginPath()
                  // 根據配置文件設置相應配置
                  ctx.lineWidth = config.lineWidth
                  ctx.strokeStyle = config.strokeStyle
                  ctx.lineCap = config.lineCap
                  ctx.lineJoin = config.lineJoin
                  // 設置畫線起始點位
                  ctx.moveTo(client.endX, client.endY)
                  // 監聽 鼠標移動或手勢移動
                  window.addEventListener(mobileStatus ? "touchmove" : "mousemove", draw)
              }
              // 繪制
              const draw = event => {
                  // 獲取當前坐標點位
                  const { pageX, pageY } = mobileStatus ? event.changedTouches[0] : event
                  // 修改最后一次繪制的坐標點
                  client.endX = pageX
                  client.endY = pageY
          
                  // 根據坐標點位移動添加線條
                  ctx.lineTo(pageX , pageY )
          
                  // 繪制
                  ctx.stroke()
              }
              // 結束繪制
              const cloaseDraw = () => {
                  // 結束繪制
                  ctx.closePath()
                  // 移除鼠標移動或手勢移動監聽器
                  window.removeEventListener("mousemove", draw)
              }
              // 創建鼠標/手勢按下監聽器
              window.addEventListener(mobileStatus ? "touchstart" : "mousedown", init)
              // 創建鼠標/手勢 彈起/離開 監聽器
              window.addEventListener(mobileStatus ? "touchend" :"mouseup", cloaseDraw)
              
              // 取消-清空畫布
              const cancel = () => {
                  // 清空當前畫布上的所有繪制內容
                  ctx.clearRect(0, 0, config.width, config.height)
              }
              // 保存-將畫布內容保存為圖片
              const save = () => {
                  // 將canvas上的內容轉成blob流
                  canvas.toBlob(blob => {
                      // 獲取當前時間并轉成字符串,用來當做文件名
                      const date = Date.now().toString()
                      // 創建一個 a 標簽
                      const a = document.createElement('a')
                      // 設置 a 標簽的下載文件名
                      a.download = `${date}.png`
                      // 設置 a 標簽的跳轉路徑為 文件流地址
                      a.href = URL.createObjectURL(blob)
                      // 手動觸發 a 標簽的點擊事件
                      a.click()
                      // 移除 a 標簽
                      a.remove()
                  })
              }
          </script>
          </html>

          各內核和瀏覽器支持情況

          Mozilla 程序從 Gecko 1.8 (Firefox 1.5 (en-US)) 開始支持 <canvas>。它首先是由 Apple 引入的,用于 OS X Dashboard 和 Safari。Internet Explorer 從 IE9 開始支持<canvas> ,更舊版本的 IE 中,頁面可以通過引入 Google 的 Explorer Canvas 項目中的腳本來獲得<canvas>支持。Google Chrome 和 Opera 9+ 也支持 <canvas>。

          小程序中提示

          在小程序中我們如果需呀實現的話,也是同樣的原理哦,只是我們需要將創建實例和上下文的Api進行修改,因為小程序中是沒有dom,既然沒有dom,哪來的操作dom這個操作呢。

          • 如果是uni-app則需要使用uni.createCanvasContext進行上下文創建
          • 如果是原生微信小程序則使用wx.createCanvasContext進行創建(2.9.0)之后的庫不支持

          主站蜘蛛池模板: 久久中文字幕一区二区| 福利片福利一区二区三区| 国内自拍视频一区二区三区 | 无码人妻精品一区二区三区东京热 | 午夜福利国产一区二区| 国产内射999视频一区| 国产一区二区好的精华液 | 国产成人无码AV一区二区 | 三上悠亚日韩精品一区在线| 四虎在线观看一区二区| 亚洲高清一区二区三区电影| 99久久人妻精品免费一区| 韩日午夜在线资源一区二区| 无码人妻久久一区二区三区蜜桃 | 亚洲成av人片一区二区三区| 一区二区三区日韩| 狠狠综合久久AV一区二区三区| 精品国产精品久久一区免费式| 精品亚洲AV无码一区二区三区| 久久久久无码国产精品一区| 九九久久99综合一区二区| 亚洲欧洲一区二区三区| 欧洲精品码一区二区三区免费看 | 精品久久久久中文字幕一区| 一区二区三区精品高清视频免费在线播放| 精品国产一区二区三区麻豆| 激情内射日本一区二区三区| 亚洲AV综合色区无码一区爱AV | 亚洲av色香蕉一区二区三区蜜桃| 精品国产亚洲一区二区三区| 东京热无码av一区二区| 秋霞午夜一区二区| 免费无码一区二区| 精品无码一区二区三区水蜜桃| 日韩毛片一区视频免费| 波多野结衣一区二区三区高清在线| 国产一区精品视频| 中文字幕亚洲一区二区va在线| 日本道免费精品一区二区| 亚洲国产国产综合一区首页| 无码人妻精品一区二区三区蜜桃|