ホームページ ウェブフロントエンド H5 チュートリアル html5 Canvas描画チュートリアル(5)—canvas_html5チュートリアルスキルで曲線を描く円弧法

html5 Canvas描画チュートリアル(5)—canvas_html5チュートリアルスキルで曲線を描く円弧法

May 16, 2016 pm 03:50 PM
canvas

この記事 キャンバスに線を描く では、直線を描く方法について説明しました。曲線を描くことに関するこの記事は、論理的にはずっと前に公開されるべきでしたが、キャンバス上で曲線を描くことは非常に特殊であるため、まだ公開していません。まだ理解できていないので、段階的に試してください。
キャンバスで曲線を描くときの難しさの 1 つは、曲線に対応する関数が 4 つしかないことです。それらは、arc、arcTo、quadraticCurveTo、bezierCurveTo です。最も単純な arc メソッドから始めましょう。
円弧の機能は、完全な円または円の特定の円弧である通常の円弧を描くことです。 arc の構文は次のとおりです。 🎜>

context.arc(x, y, radius, startAngle, endAngle, anticlockwise)
そのパラメーターについて説明します。
円弧(円の中心x、円の中心y、半径、開始角度、終了角度、反時計回りかどうか)

円弧を使って完全な円を描く場合はどうすればよいでしょうか?パラメータに開始角度と終了角度があることに誰もが気づきました。開始角度が 0、終了角度が 360 の場合、それは完全な円ではないでしょうか。
正解です!ただし、ここでの角度は「ラジアン」で表されることに注意してください (Flash の場合も同様です)。完全な円は 360 度、つまり 2PI ラジアンです。 したがって、 を次のように書きます:


コードをコピーします


コード


ctx.arc(400,400,20,0,Math.PI*2); ctx.stroking(); >
lineTo と同様に、arc も描画パスなので、グラフィックスを表示するにはその背後にある fill メソッドまたはストローク メソッドを呼び出す必要があります (画像では赤いストロークスタイルと半透明の赤い fillStyle が使用されています)。
今度は 1/4 の円を描きましょう。角度は 90 度です。前述したように、360 度の角度は 2PI ラジアンなので、1 度の角度は 2PI/360=PI/180 ラジアン、90 度は 2PI/360*90=PI/2 ラジアンになります (他の角度は自分で計算してください) )。

コードをコピーします


コードは次のとおりです:


ctx.arc(400,400, 20,0 ,Math.PI*2/4);




図から、円弧の 0 度は数学で一般的に使用される 0 度であると判断できます。ですが、角度はデフォルトで時針が開いており、数学的モデルとは反対になります (キャンバスの座標も数学的座標の反対であるため、これは座標に関連しています)。
でも、左回りかどうかを決めるパラメータが前にあるんじゃないでしょうか?それを true に設定してはどうでしょうか?
コードをコピーします

コードは次のとおりです:

ctx.arc(400,400, 20,0 ,Math.PI*2/4,true);




角度が反時計回りになり、円弧が 360 -90 になることがわかります。 =270度。
しかし!誰もが注意すべきことの 1 つは、始点と終点の計算方法は常に 0 度から始まり、時計回りに伸びるということです。順方向や逆方向というものはありません。時計回りと反時計回りは、円弧が描かれる方向にすぎません。
これにより、行きつ戻りつが混乱するのを防ぐだけでなく、計算も簡単になります。 ただし、反時計回りに柔軟に使用すると便利な場合があります。 上の例では、開始角度はすべて 0 です。次に、90 度など、他の開始角度を試してみましょう。

コードをコピーします

コードは次のとおりです:

ctx.arc(400,400, 20,Math .PI*2/4,Math.PI*2 Math.PI);


開始点が 90 度で、終了点も 90 度の場合、結果は何もありません。が描けるので終点を置き角度を180度に変更して最終的に下のグラフが得られました。


質問: 0度以外の始点から完全な円を描いても大丈夫ですか?もちろん、円弧の終点を 360 度の開始角度に設定する限り、次のようにすることができます。
コードをコピー

コードは次のとおりです。

ctx.arc(400,400,20,Math.PI*2/4,Math.PI*2 Math.PI*2/4); /開始点は 90 度、終了点は 360 90 度


しかし、このアプローチはトラブルを探しているだけであり、普通の人は使用しません。
概要: Canvas の arc メソッドは正の円弧を描く方法であり、S 字などの他の奇妙な円弧は描くことができません。ただし、私は S 字が一番好きです。 -形。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

キャンバスを使用している学校はどこですか? キャンバスを使用している学校はどこですか? Aug 18, 2023 pm 05:59 PM

Canvas を使用している学校には、スタンフォード大学、MIT、コロンビア大学、カリフォルニア大学バークレー校などが含まれます。詳細な紹介: 1. スタンフォード大学は、主要なオンライン学習プラットフォームとして Canvas を使用しています。スタンフォード大学の教師と学生は、Canvas を使用してコースの内容を管理および伝達し、オンライン ディスカッション、課題の提出、試験などの機能を通じて学習します。2. マ州Polytechnic Institute と MIT もオンライン学習管理システムとして Canvas を使用しており、Canvas プラットフォームを通じてコース管理を行っています。3. コロンビア大学など。

キャンバス矢印プラグインとは何ですか? キャンバス矢印プラグインとは何ですか? Aug 21, 2023 pm 02:14 PM

キャンバス矢印プラグインには、1. シンプルで使いやすい API を備え、カスタムの矢印効果を作成できる Fabric.js、2. 矢印を描画する機能を提供し、さまざまな矢印を作成できる Konva.js が含まれます。スタイル; 3. 豊富なグラフィックス処理機能を提供し、さまざまな矢印効果を実現できる Pixi.js; 4. 矢印のスタイルやアニメーションを簡単に作成および制御できる Two.js; 5. さまざまな矢印効果を作成できる Arrow.js ; 6. 大まかな.jsでは、手描きの矢印などが作成できます。

キャンバスクロックの詳細は何ですか? キャンバスクロックの詳細は何ですか? Aug 21, 2023 pm 05:07 PM

キャンバス時計の詳細には、時計の外観、目盛り、デジタル時計、時針、分針、秒針、中心点、アニメーション効果、その他のスタイルなどが含まれます。詳細な紹介: 1. 時計の外観、キャンバスを使用して時計の外観として円形の文字盤を描画し、文字盤のサイズ、色、境界線などのスタイルを設定できます; 2. 目盛り線、目盛り線を描画します。位置; 3. デジタル時計、現在の時と分を示すために文字盤にデジタル時計を描くことができます; 4. 時針、分針、秒針など。

html2canvas にはどのようなバージョンがありますか? html2canvas にはどのようなバージョンがありますか? Aug 22, 2023 pm 05:58 PM

html2canvas のバージョンには、html2canvas v0.x、html2canvas v1.x などが含まれます。詳細な紹介: 1. html2canvas v0.x (html2canvas の初期バージョン) 最新の安定バージョンは v0.5.0-alpha1 です。これは、多くのプロジェクトで広く使用され、検証されている成熟したバージョンです。2. html2canvas v1.x、これは html2canvas の新しいバージョンです。

キャンバス フレームワークを学び、一般的に使用されるキャンバス フレームワークについて詳しく説明します キャンバス フレームワークを学び、一般的に使用されるキャンバス フレームワークについて詳しく説明します Jan 17, 2024 am 11:03 AM

Canvas フレームワークを探索する: 一般的に使用される Canvas フレームワークを理解するには、特定のコード例が必要です。 はじめに: Canvas は HTML5 で提供される描画 API であり、これを通じて豊富なグラフィックスやアニメーション効果を実現できます。描画の効率と利便性を向上させるために、多くの開発者がさまざまな Canvas フレームワークを開発しました。この記事では、一般的に使用される Canvas フレームワークをいくつか紹介し、読者がこれらのフレームワークの使用方法をより深く理解できるように、具体的なコード例を示します。 1.EaselJSフレームワークEa

uniapp は、キャンバスを使用してチャートやアニメーション効果を描画する方法を実装します。 uniapp は、キャンバスを使用してチャートやアニメーション効果を描画する方法を実装します。 Oct 18, 2023 am 10:42 AM

キャンバスを使用して uniapp でチャートやアニメーション効果を描画する方法には、特定のコード例が必要です。 1. はじめに モバイル デバイスの普及に伴い、モバイル端末上でさまざまなチャートやアニメーション効果を表示する必要があるアプリケーションがますます増えています。 uniapp は、Vue.js に基づくクロスプラットフォーム開発フレームワークとして、キャンバスを使用してチャートやアニメーション効果を描画する機能を提供します。この記事では、uniapp がキャンバスを使用してチャートやアニメーション効果を実現する方法を紹介し、具体的なコード例を示します。 2.キャンバス

tkinter Canvas にはどのようなプロパティがありますか? tkinter Canvas にはどのようなプロパティがありますか? Aug 21, 2023 pm 05:46 PM

tkinter Canvas 属性には、bg、bd、relief、width、height、cursor、highlightbackground、highlightcolor、highlightthickness、insertbackground、insertwidth、selectbackground、selectforeground、xscrollcommand 属性などが含まれます。詳しい紹介

ゲーム開発におけるキャンバスの強力な役割と応用を探る ゲーム開発におけるキャンバスの強力な役割と応用を探る Jan 17, 2024 am 11:00 AM

ゲーム開発におけるキャンバスの力と応用を理解する 概要: インターネット技術の急速な発展に伴い、Web ゲームはプレイヤーの間でますます人気が高まっています。 Web ゲーム開発の重要な部分として、キャンバス テクノロジーがゲーム開発に徐々に登場し、その強力なパワーと応用性を示しています。この記事では、ゲーム開発におけるキャンバスの可能性を紹介し、具体的なコード例を通じてその応用例を示します。 1. Canvas テクノロジの概要 Canvas は HTML5 の新しい要素で、これにより次のことが可能になります。

See all articles