HTML5 の
<canvas id = "mycanvas" width = "100" height = "100"></canvas>
次のように getElementById() メソッドを使用すると、DOM 内の
HTML5 での Canvas 要素の使用の概要var canvas = document.getElementById("mycanvas");
Canvas は、開発者が描画をカスタマイズするためのインターフェイスを提供します。 getContext() 関数を使用して、描画操作の描画コンテキストを取得できます。この関数では 2 つのパラメータを渡すことができます。最初のパラメータは、より一般的に使用される「2d」です。webOpenGL を使用して 3D 描画を実装することもできます。このブログでは主に2D描画関連の手法をまとめています。
1. 単純なグラフィックを描画する
Canvas を使用してフラット グラフィックを描画するのは比較的簡単です。たとえば、次の関数を使用して、長方形の領域を直接描画できます。
グラフィック効果は次のとおりです:
は、fillRect を使用して塗りつぶされた四角形を描画します。たとえば、var c = document.getElementById("canvas"); var context = c.getContext("2d"); context.strokeRect(20,20,100,100);効果は次のとおりです。
var c = document.getElementById("canvas"); var context = c.getContext("2d"); context.fillRect(20,20,100,100);効果は次のとおりです。
var c = document.getElementById("canvas"); var context = c.getContext("2d"); context.strokeRect(20,20,100,100); context.clearRect(10,10,100,100);効果は次のとおりです:
var c = document.getElementById("canvas"); var context = c.getContext("2d"); context.beginPath(); context.moveTo(20,20); context.lineTo(20,100); context.lineTo(100,100); context.closePath(); context.stroke();
quadraticCurveTo 関数と bezierCurveTo 関数は、それぞれ 2 次ベジェ曲線パスと 3 次ベジェ曲線パスを作成するために使用されます。例は次のとおりです。
効果は次のとおりです。
ベジェ曲線に関する関連コンテンツについては、ブログ
context.moveTo(20,120); context.quadraticCurveTo(20,200,100,180); context.stroke(); context.moveTo(20,200); context.bezierCurveTo(20,300,60,300,60,200); context.stroke();
https://my.oschina.net/u/2340880/blog/1519503 をご覧ください。
arc 関数は円弧を作成するために使用されます。例:
arc 関数では、最初の 2 つのパラメーターは円の中心点を設定し、3 番目のパラメーターは半径を設定します。 、4 番目のパラメータ、および 5 番目のパラメータは、ラジアンで表される円弧の開始点と終了点を設定します。最後のパラメータは、逆に描画するかどうかを設定するブール値です。次のように、2 つの接線の間に円弧を描くために使用される arcTo 関数もあります。
効果は以下のようになります。context.moveTo(110,350); context.arc(60,350,50,0,2*Math.PI,false); context.stroke();を使用します。クリップ この関数はトリミング操作を実行できます。トリミング後は、トリミングされた領域内にのみ後続の描画を描画できます。その効果は次のとおりです。
context.moveTo(20,420); context.arcTo(80,420,80,600,50); context.stroke();
注意点は、クリップ機能を使用してトリミングした後、その後の描画はクリップされた領域内のみで行われるため、クリップされた領域の外側に描画したい場合は、保存および復元機能を使用する必要があります。クリッピングする前に、保存機能を使用して現在の描画コンテキストの状態を保存します。クリッピング領域の外側に描画したい場合は、復元機能を使用して描画コンテキストを復元します。
context.rect(0,500,100,30); context.clip(); context.fillRect(0,500,200,200);
2. テキストと画像の描画
前の例では、グラフィックスに加えて Canvas を使用しています。 Canvas を使用すると、画像やテキストを簡単に描画することもできます。次のように、drawImage 関数を使用して画像を描画します:
var image = document.createElement("img"); image.src = 'img/HBuilder.png'; image.onload = function(){ context.drawImage(image,0,600); }
需要注意,上面创建了img元素后,设置src属性后不能立刻进行渲染,因为图片的加载是需要时间的,直接渲染会无法获取图像数据。drawImage这个函数总共可以有8个参数,drawImage(img,sx,sy,sw,sh,x,y,w,h)。其中sx,sy和sw,sh用来对原图像进行裁剪,只选择图像中的部分进行绘制,x,y,w,h设置绘制在画布上的坐标和尺寸。
关于文本绘制,可以使用fillText或strokeText函数,分别用来绘制实心和空心文字。示例如下:
context.font = "20px Georgia";//设置字体 context.textAlign = 'start'; //设置文字对齐方式 context.fillText("Hello World",0,750,200); context.strokeText("Hello World",0,800,200);
效果如下:
3.绘制属性的设置
在绘制过程中,开发者可以对绘制的线条颜色,填充颜色,风格,阴影等进行设置。示例如下:
context.fillStyle = 'red'; //设置填充颜色 context.strokeStyle = 'blue'; //设置线条颜色 context.shadowColor = 'green'; //设置阴影颜色 context.shadowBlur = 10; //设置阴影模糊度 context.shadowOffsetX = 10; //设置阴影X轴偏移量 context.shadowOffsetY = 5; //设置阴影Y轴偏移量 context.lineCap = 'round'; //设置线帽样式 context.lineJoin = 'round'; //设置折点样式 context.lineWidth = 1; //设置线条宽度
效果如下图:
关于fillStyle和strokeStyle两个属性比较特殊,从名字也可以了解其是设置填充或线条的风格,设置颜色只是一种方式,其还可以设置为一个渐变对象,用来实现渐变效果。例如:
var g = context.createLinearGradient(0,750,200,750); g.addColorStop(0,'black'); g.addColorStop(0.5,'red'); context.fillStyle = g; context.fillText("Hello World",0,750,200);
效果入下图:
createLinearGradient函数用来创建线性渐变层,其中4个参数设置起始点的x,y和结束点的x,y。调用addColorStop函数用来想渐变层中添加临界点和颜色值。也可以创建发散型渐变,例如:
var g = context.createRadialGradient(70,800,20,70,800,50); g.addColorStop(0,'black'); g.addColorStop(1,'red'); context.fillStyle = g; context.fillRect(20,750,100,100);
效果如下:
createRadiaGradient函数的前3个参数设置渐变开始处的圆弧(分别设置圆心x,y坐标和半径),后3个参数设置渐变结束处的圆弧(分别设置圆心x,y坐标和半径)。
fillStyle和strokeStyle也可以设置为一个模式背景,例如将图片进行重复得到的背景,示例如下:
image.onload = function(){ var p = context.createPattern(image,'repeat'); context.fillStyle = p; context.fillRect(20,750,200,200); }
效果如下图所示:
可选的重复模式还有:
repeat-x:只在水平方向重复。
repeat-y:只在竖直方向重复。
no-repeat:不重复,只显示一次。
4.进行画布转换
画布也可以进行一些简单的变换操作,例如旋转,缩放等等。需要注意,对画布的操作不会影响到已经绘制到画布上的内容,之后绘制的内容会受到影响。使用scale(x,y)函数可以对画布进行缩放,其中两个参数x和y分别设置水平和竖直方向的缩放比例。rotate(angle)函数用来对画布进行旋转,其中的参数为旋转的角度值。translate(x,y)函数用来对画布进行平移,参数x,y分别设置水平和竖直方向的平移量。还有一个复合的transform(a,b,c,d,e,f)函数,使用这个函数可以一步设置平移,旋转和缩放属性,参数意义如下:
a:设置水平缩放比
b:设置水平倾斜
c:设置垂直倾斜
d:设置垂直缩放比
e:设置水平平移
f:设置垂直平移
需要注意,如果你多次调用transform,每次的transform变换都将在上一次的基础上进行。如果你不想保留上一次的记录,可以调用setTransform()函数来重置设置。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
