HTML5で最も興味深いのはこのキャンバスです
これを通して必要なグラフィックを描くことができます
これは非常に重要な技術でもあります
ゲームやグラフなどに適用できます
あるいはあらゆる種類の素晴らしいものを描くことができます
ここウェブサイトポータルを共有しましょう
それはキャンバステクノロジーで描かれたグラフィックでいっぱいです
キャンバスの作成
キャンバスはhtmlのタグです
グラフィックコンテナです
まず第一に、キャンバス要素を追加する必要がありますHTML ページ
<canvas id="myCanvas" width=500 height=500></canvas>
後の使用のために、ID を追加しました
幅と高さはキャンバスのサイズを定義します
ただし、これは CSS スタイルの幅と高さとは異なることに注意してください
たとえば、次のようなものを追加するとスタイルを CSS スタイルに変更します
#myCanvas { border: 1px solid black; width: 250px; height: 250px;}
境界線を定義します キャンバスの位置を知らせるためです
CSS スタイルの幅と高さが設定されていない場合、キャンバスのサイズは定義した幅 500、高さ 500 になりますCanvas タグ上で
ただし、ここでスタイルの幅と高さを定義したため、キャンバスは 1 倍に縮小されたことに相当します
(キャンバスの最大キャンバス座標は 500×500 のままです)
HTML ドキュメントで行う必要があるのは、canvas タグを追加することだけです
次に、スクリプトを使用してグラフィックスを描画する必要があります
要素と環境オブジェクトを取得する
要素を取得する 誰もが知っています
var myCanvas = document.getElementById('myCanvas');
次のコードは、次の目的で使用されますコンテキスト オブジェクト/環境オブジェクトを取得します
var ctx = myCanvas.getContext('2d');
getContext は描画環境を指定するために使用されます
ここでは最も一般的に使用される 2 次元描画を使用します
getContext( '2d') を使用します
(getContext('webgl') は 3D に使用されますdrawing)
取得したctxはオブジェクト(CanvasRenderingContext2Dオブジェクト)
2桁の描画APIを使用するために使用します
平たく言えば、canvas要素のオブジェクトは私たちの「Canvas」です
getContext('2d')で取得した環境オブジェクトは私たちの「ブラシ」です
以下のすべての操作は、コンテキストオブジェクトである「ブラシ」を使用する必要があります(ここでは変数ctxです)
線分の描画
それでは、最も単純なグラフィックである線分を描画しましょう
それでは、 Webページ上の500×500のキャンバスです
まずは対角線を描きましょう
ctx.moveTo(100, 100);ctx.lineTo(400, 400);ctx.stroke();
moveTo()で線分の描画の始点を指定します
lineTo()で終点(または通過点)を指定します今は、ストローク() なしでは描画できないことを知っておく必要があります
これを理解すると、三角形を描画できるようになります
2 本の線を追加するだけです。コードの
ctx.moveTo(100, 100);ctx.lineTo(400, 400);ctx.lineTo(100, 400); //增ctx.lineTo(100, 100); //增ctx.stroke();
いい感じですね
それでは線幅の変更方法をお教えします
lineWidthを変更
ctx.lineWidth = 50; //增ctx.moveTo(100, 100);ctx.lineTo(400, 400);ctx.lineTo(100, 400);ctx.lineTo(100, 100);ctx.stroke();
線を太くするとき
出発点とエンドポイントは非常に良好な接続にはなりません
現時点では、別の関数 closePath() が必要です
ctx.lineWidth = 50;ctx.moveTo(100, 100);ctx.lineTo(400, 400);ctx.lineTo(100, 400);ctx.closePath(); //改ctx.stroke();
それにより、完璧な閉じた三角形を描くことができます
最後にストローク()について説明します
中空のグラフィックを描くという意味です
さらに、立体のグラフィックを描くためのfill()もあります
ctx.lineWidth = 50;ctx.moveTo(100, 100);ctx.lineTo(400, 400);ctx.lineTo(100, 400);ctx.closePath();ctx.fill(); //改
前のものはすべての定義ルール、そして、ストローク() または fill() が実際の実行者です
もう 1 つ注意すべき点があります
fill() とストローク() は両方とも現在のすべてのサブパスに作用します
完了後に別のパスを開始したい場合1 つのパス パス
は beginPath() メソッドを使用する必要があります
以下の例を参照してください (線分の色を設定するためにストロークスタイル/フィルスタイルが使用されます)
ctx.lineWidth = 60; ctx.strokeStyle = 'red'; ctx.moveTo(100, 100); ctx.lineTo(100, 400); ctx.stroke(); ctx.lineWidth = 20; ctx.strokeStyle = 'blue'; ctx.moveTo(400, 100); ctx.lineTo(400, 400); ctx.stroke();最終的な結果はあなたが考えているものと異なる可能性があります
以下のすべてのプロパティは上のプロパティをオーバーライドします
解決策は次のとおりです
//一条路径ctx.lineWidth = 60; ctx.strokeStyle = 'red'; ctx.moveTo(100, 100); ctx.lineTo(100, 400); ctx.stroke(); ctx.beginPath(); //增//另一条路径ctx.lineWidth = 20; ctx.strokeStyle = 'blue'; ctx.moveTo(400, 100); ctx.lineTo(400, 400); ctx.stroke();
ctx.moveTo(100, 100);ctx.lineTo(400, 100);ctx.lineTo(400, 400);ctx.lineTo(100, 400);ctx.closePath();ctx.stroke();
もっと簡単なメソッドがあります
ctx.rect(100, 100, 300, 300);ctx.stroke();最初の 2 つのパラメータはキャンバスの開始座標で、最後の 2 つのパラメータは四角形の幅と高さを表します
しかし、もっと簡単なメソッドもあります
ctx.strokeRect(100, 100, 300, 300);お察しのとおり、実線の長方形を描画する別の方法があります fillRect()
ctx.fillRect(100, 100, 300, 300);ストロークRect()とfillRect()を使用すると、rect()をまったく使用する必要がありません
矩形擦除
clearRect()可以让我们擦除画布上的矩形区域
这就类似于我们的橡皮擦
比如说我在实心矩形中间挖走一块矩形区域
ctx.fillRect(100, 100, 300, 300);ctx.clearRect(150, 150, 200, 200);
现在我们可以利用这个方法实现一个矩形下落的效果
var width = 500, height = 500, y = 50;var timer = setInterval(function(){ ctx.clearRect(0, 0, width, height); ctx.fillRect(100, y++, 50, 50); if(y > 400){ clearInterval(timer); } }, 5);
重点就是
每次更新矩形之前,清除一下画布
弧形绘制
绘制弧形使用方法
arc(x, y, r, 起始弧度, 结束弧度, 弧线方向)
这里要知道画布的坐标系和浏览器坐标系是一样的
x正半轴朝右
y正半轴朝下
参数中x,y表示弧心(或者理解为圆心)
r就是半径
弧线方向0为顺时针,1为逆时针
下面我们来使用这个方法
先来画一段弧
ctx.arc(250, 250, 200, 0, Math.PI/2, 0);ctx.stroke();
画一个圆
ctx.arc(250, 250, 200, 0, 2*Math.PI, 0);ctx.stroke();
画一个吃豆人
ctx.moveTo(250, 250);ctx.lineTo(450, 250);ctx.arc(250, 250, 200, 0, Math.PI/3, 1);ctx.closePath();ctx.stroke();
绘制弧形除此之外,还有一个方法
arcTo(x1, y1, x2, y2, r)
r是弧的半径
它的使用方法参照下面的图片
配合我们的线段绘制
可以画出圆角矩形
ctx.moveTo(250, 100); ctx.arcTo(400, 100, 400, 400, 30); ctx.arcTo(400, 400, 100, 400, 30); ctx.arcTo(100, 400, 100, 100, 30); ctx.arcTo(100, 100, 400, 100, 30); ctx.closePath(); ctx.stroke();
贝塞尔曲线
还有更高级的方法就是可以绘制贝塞尔曲线
简单了解就好,不常用
二次贝塞尔曲线 quadraticCurveTo(x1, y1, ex, ey)
三次贝塞尔曲线 bezierCurveTo(x1, y1, x2, y2, ex, ey)
其中x1,y1,x2,y2分别是第一个和第二个控制点的坐标
ex和ey是终点坐标
这里我就盗用网上大神做的图片了
二次贝塞尔曲线:
ctx.moveTo(40,340); ctx.lineTo(260,80); ctx.lineTo(360,300); ctx.stroke(); /*绘制二次贝塞尔曲线 */ ctx.beginPath(); ctx.moveTo(40,340); ctx.quadraticCurveTo(260,80,360,300); ctx.strokeStyle = "#f40"; ctx.stroke();
三次贝塞尔曲线:
ctx.moveTo(50, 350); ctx.lineTo(120, 160); ctx.lineTo(300, 60); ctx.lineTo(340, 300); ctx.stroke(); /*绘制三次贝塞尔曲线 */ ctx.beginPath(); ctx.moveTo(50, 350); ctx.bezierCurveTo(120, 160, 300, 60, 340, 300); ctx.strokeStyle = "#f40"; ctx.stroke();
以上就是HTML5画布Canvas线段、矩形、弧形及贝塞尔曲线等简单图形绘制的内容,更多相关内容请关注PHP中文网(www.php.cn)!

html5isamajorrevision ofhtmlstandardthatedatedatizeizeswebdevelovement byintunwingnewsemanticelementsandcapabilities.1)itenhancesscodereadability and.2)html5EnableSricher、InteractiveEnceEnceEnceEncedienceEnceDirectembe、and.2)

H5の高度なヒントには以下が含まれます。1。複雑なグラフィックスを使用して描画します。2。ウェブワーカーを使用してパフォーマンスを向上させます。これらのヒントは、開発者がよりダイナミックでインタラクティブで効率的なWebアプリケーションを構築するのに役立ちます。

H5(HTML5)は、新しい要素とAPIを介してWebコンテンツと設計を改善します。 1)H5はセマンティックタグ付けとマルチメディアサポートを強化します。 2)キャンバスとSVGを導入し、Webデザインを濃縮します。 3)H5は、新しいタグとAPIを介してHTML機能を拡張することにより機能します。 4)基本的な使用には、それを使用したグラフィックの作成が含まれ、高度な使用法にはwebstorageapiが含まれます。 5)開発者は、ブラウザの互換性とパフォーマンスの最適化に注意を払う必要があります。

H5は多くの新しい機能と機能をもたらし、Webページのインタラクティブ性と開発効率を大幅に改善します。 1。SEOの強化などのセマンティックタグ。 2.マルチメディアサポートは、オーディオとビデオの再生とタグを簡素化します。 3. Canvas Drawingは、動的なグラフィックスの描画ツールを提供します。 4.ローカルストレージは、LocalStorageとSessionStorageを介してデータストレージを簡素化します。 5. Geolocation APIは、ロケーションベースのサービスの開発を促進します。

HTML5は5つの重要な改善をもたらします。1。セマンティックタグにより、コードの明確性とSEO効果が向上します。 2.マルチメディアサポートは、ビデオとオーディオの埋め込みを簡素化します。 3。フォームエンハンスメントは、検証を簡素化します。 4.オフラインおよびローカルストレージにより、ユーザーエクスペリエンスが向上します。 5。キャンバスとグラフィック機能は、Webページの視覚化を強化します。

HTML5のコア機能には、セマンティックタグ、マルチメディアサポート、オフラインストレージ、ローカルストレージ、フォームエンハンスメントが含まれます。 1。コードの読みやすさとSEO効果を改善するためのセマンティックタグなど。 2.ラベルでマルチメディアの埋め込みを簡素化します。 3。アプリケーションキャッシュやLocalStorageなどのオフラインストレージとローカルストレージは、ネットワークのない操作とデータストレージをサポートします。 4.フォームエンハンスメントでは、処理と検証を簡素化するための新しい入力タイプと検証プロパティを導入します。

H5は、さまざまな新機能と機能を提供し、フロントエンド開発の機能を大幅に向上させます。 1.マルチメディアサポート:メディアを埋め込んで要素を埋め込み、プラグインは必要ありません。 2。キャンバス:要素を使用して、2Dグラフィックとアニメーションを動的にレンダリングします。 3。ローカルストレージ:ユーザーエクスペリエンスを改善するために、ローカルストレージとセッションストレージを介して永続的なデータストレージを実装します。

H5とHTML5は異なる概念です。HTML5は、新しい要素とAPIを含むHTMLのバージョンです。 H5は、HTML5に基づくモバイルアプリケーション開発フレームワークです。 HTML5はブラウザを介してコードを解析およびレンダリングしますが、H5アプリケーションはコンテナを実行し、JavaScriptを介してネイティブコードと対話する必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









