xfcRS-平滑化されたタむルの元の簡朔で軜快なレンダリング、「拡匵高速セル-角䞞正方圢」

画像



xfcRSは倚機胜高速アルゎリズムで、スムヌズトランゞションを䜿甚したタむルレンダリング甚/等倀面の構築甚/ラスタヌ内の゚ッゞの遞択甚/ピクセルシェヌダヌずしおの埌凊理甚-ピクセルアヌトスケヌリング8x8フォントの高速ラスタヌ化には、倉曎なしのアップスケヌルのための他の玠材は掚奚されたせん 。 頭字語のデコヌド-「eXpansion Fast Cell-Rounded Squares」



この蚘事では、䞻にスムヌゞングタむルのレンダリングのコンテキストで怜蚎したす。



利甚芏玄に぀いおご質問がある堎合は、こちらでご確認ください
シ゜ヌラス
-レンダリング-画面䞊にフレヌムを䜜成するプロセス。 これを行うアルゎリズムをそれぞれレンダリングしたす。

-ラスタヌ-スクリヌンポむントの配列たたはテクスチャむメヌゞファむル。 ラスタラむズは、いく぀かの入力デヌタからこのポむントの配列を構築するプロセスです。

-アップスケヌル-これはプロセスずそれを実装するアルゎリズムの名前であり、特にサむズが倧きくなる方向にグラフィックを拡倧するように蚭蚈されおいたす。 それらの䞻な焊点は、過床の粒状性、がかしなどの画像歪みの悪圱響の出珟ずの戊いです。

-Pixelart-ラスタヌグラフィックス。長幎のリリヌスのおかげか、特別にレトロコンピュヌタヌを暡倣しおおり、ラスタヌの倧きな解像床を求めお戊っおいたせん。

-埌凊理-䞀般的な堎合、操䜜に先行する他のアルゎリズムの埌に機胜するアルゎリズムこの堎合、前凊理ず呌ばれる堎合がありたす。

-シェヌダヌ-䞀般的な堎合、ビデオカヌドのハヌドりェア実行甚に実装された埌凊理アルゎリズム。



-タむルは、空間のパヌティションの芁玠、特にタむルセットのテクスチャです。

-タむルセット-アルゎリズムに必芁なセットのすべおのタむルを1぀の画像に組み立おたす。

-「トランゞションタむル」-ここでは、「拡散円」を構成する16分の1のタむルで、2぀のテクスチャがスムヌズに別のテクスチャに移行したす。 四隅のそれぞれに4分の1を遞択しお組み合わせるこずにより、結果の画像をシヌムレスに远加するために必芁なすべおのオプションを䜜成できたす。

-Sablet-ここでは、セルの四分の䞀のいずれかが暗瀺され、そのアルゎリズムは完了しおいたす。 それぞれ、このセルのテクスチャの䞀郚。



-Marshing Squares-二次元スカラヌ堎で茪郭を生成するアルゎリズム。 en.wikipedia.org/wiki/Marching_squaresを参照しおください

-茪郭-正確な䜍眮の近䌌反射に圹立぀埓来のラむン。

-近䌌-正確な䜕かの近䌌倀。





先を芋据えお、すぐに蚀いたす。これは改良されたマヌシングスク゚アではなく、
技術が...
タむルの16のバリアントぞの内蚳は䌌おいたすが、これは倖郚の類䌌点に過ぎず、アルゎリズムはれロから開発されおいたす。 深く芋るず、16四半期が䜿甚され、移行のみに䜿甚されたす。 完党に塗り぀ぶされたタむルたたは完党に空のタむルには、別のフルサむズのタむルが䜿甚されたす。



Marshing Squaresの等倀面は、線の䜍眮を可胜な限り近䌌し、元のセルのボリュヌムを芖芚的にあたり倉化させないようにしたすが、このアルゎリズムは、Rounded Squaresずいう名前の由来である線の最小曲率を増加させようずしたす。

Marshing Squaresず同じ数のチェックを䜿甚するず、必芁な入力タむルセットが小さくなりしたがっおアヌティストの䜜業が少なくなりたす、最悪の堎合は4分の1の出力のために最倧で4倍遅くなりたす実際には、セルトポロゞの耇雑さず描画機胜の実装に䟝存したすタむル、ほずんど違いはありたせん。



トポロゞ的には、アルゎリズムは互いに45床回転した同じラむンを䜿甚したすが、Marsing Squaresのように0からではなく、22.5床から延期し始めたすこれにより、氎平および斜めの䞡方の反射で互いに察称になり、ちょうど2から16分の4のすべおのトランゞションを取埗するには、トップダりンたたは非指向のスプラむトがある堎合、アヌティストの䜜業量が少なくなりたす。スムヌズなトランゞションテクスチャ拡散さえ必芁ない堎合でも、セルを䞞めるだけで十分です。アヌティストを枛らすこずができたす 自動的にavtokompilyatsiyaを再構築したす - 「攟物線の䜜品四半期タむルを描画する」タスクたで。

提瀺された䟋では、8蟺の完党な察称性のために、再配眮によっおのみ遷移テクスチャタむルの円が裏返しになっおいたす。





非垞にシンプルなタむルスムヌゞングスキヌムが䜿甚されたす。 これは、「拡散円」によっお実珟されたす。その郚分は、同䞀ではないセルのゞャンクション、たたはセルず空のセルのゞャンクションに重ねられたす。 「拡散円」は、すべおのタむプのセルに察しお描画され、テクスチャに空のセルぞのスムヌズな移行を反映する必芁がありたす。



぀たり、すべおのテクスチャは、空のセルのテクスチャを介しお盞互に受け枡したす。 これにより、アヌティストの䜜業が可胜な限り高速化されたす
タむル゚ンゞンの堎合、これが暙準であるこずに泚意しおください
誰にずっおも同じである同じ䞀般的なテクスチャヌに察するこのような制限が気に入らない堎合は、急いで刀断しないでください。 事実は、「すべおにすべお」の盎接的な移行をサポヌトしたいが、二次䟝存関係を築いおいるため、タむルセットは乗算テヌブルのように成長したす埌続の各远加には、関係を結合するためのより倚くの䜜業が必芁です-「他のすべおのタむル」。 人的リ゜ヌスでも問題を解決した堎合、少なくずも゜フトりェアレベルでは、占有メモリタむルセットのサむズずデヌタ転送のサむズブラりザヌの堎合をロヌドするか、速床をロヌドしたす拡散が動的にカりントされる堎合;

-倚様性をもたらす別の方法は、このアルゎリズムを倚くの䞀般的なテクスチャのケヌスに適合させるこずです。 䞀般的な堎合、各タむプのサヌフェスは、グルヌプ内の他のタむプで共通のテクスチャを介しお1回だけ構成できたす぀たり、タむプのペアが䞀般的なテクスチャを䞀意に決定する必芁がありたす。 特殊なケヌスはテクスチャサむクルです。 そしお、共通のABに入り、そこにBも入り、共通のBSに入り、C ...も入りたす。必芁な堎合、埌者は最初のサむクルに入りたす。

-たた、新しいレベルに移動する堎合にのみ、すべおに共通する移行テクスチャに倚様性を導入するための優れたオプションです。 そのため、ブヌト時に䞀床キャッシュされたす。 私の意芋では、これはこのアルゎリズムを適甚しお単玔な2Dゲヌムを䜜成する最も効果的な方法です。





アルゎリズムはセルを2x2クォヌタヌに分割し、各セルは準備されたセットからより小さな方向のタむルで塗り぀ぶされたす。 しかし、これは結果です。 実際、xfcRSは埌凊理アルゎリズムです。 そしお、ビュヌアは倖郚の远加です。 XfcRS自䜓は、セルマップをさたざたな方法で䜿甚できるむンデックステヌブルに折りたたむだけです。 このテヌブルずは䜕ですか、どのように構築され、どのように䜿甚されたすか



この蚘事では、単玔なポストレンダリングの䟋を瀺したす。 「ポスト」レンダリングずは、ビュヌ内の次のパスであり、マップ党䜓をれロから衚瀺するのではなく、必芁な堎所に远加のサブタむルのみを描画するこずを意味したす。



急がずに、説明された順に説明を始めたす。



1.遷移テクスチャ

「トポロゞ」を芋るず、隣接するセルに応じおセルを構成できるタむルが16個ありたす。

最も単玔な状況すべおの隣人が等しいセルが゚ッゞピヌスで構成されおいるこずは、類掚によっお芚えるこずができたす-ピヌスが隣人にくっ぀くこず

これを倉曎する初期状態ずしたす。

隣人が等しくない堎合、圌は自分の䞀郚を2぀の䜍眮にプッシュしたす。



すべおの隣人がチェックされ、タむルのすべおのピヌスがそれに応じお抌し出されるず、これらの4぀のピヌスでセルを衚瀺できたす。

効率のために、たずえばセルが完党に完党であるか完党に空であるかなど、卞売条件を確認できたす。



最初に考えなければならないのは、スムヌゞングタむルの問題の定匏化をどのように遞択するかです。これにより、実装が容易になりたすが、質的に倧きな違いはありたせん。

通垞のセルを芖芚的に「平滑化」するこずにより、䞀郚のセルが他のセルにクロヌルされるこずは明らかです。 しかし、すべおの「クリヌプ」が人件費の点で同様に最小限であるわけではありたせん。

セルを2぀の方法で䞞めるこずができたす-共通のテクスチャをその䞊にクロヌルする方法、たたはその逆-セルを元の境界を越えお匕っ匵る方法。 2぀のオプションは、芖芚的にはほずんど意味がありたせん。 私たちは1぀を遞択したす-芋知らぬ人ず䌚うずき、たたはテクスチャヌがれロのずきのセルの狭たりのみ。 これは、察角セルずの盞互䜜甚を陀倖するこずも意味したす。これは、さらなる最適化にも圹立ちたす。



この堎合、遷移コンタヌは理想的な円に最も近くなるようにするのが最適ですただし、これは制限ではありたせんが、それに近いほど滑らかに䞞められたす。 セルの呚りの理想的な円は正確に蚘述されたす-角を通過したすこれはスムヌズな遷移の制限です。 察称性も重芁です。これはバむラゞアルでなければなりたせん。 これにより、薄い領域の曲がりを滑らかにできたす。 遷移テクスチャが均䞀でない堎合-トヌラスを描画したす元のテクスチャの図を参照しおください。テンプレヌトずしお䜿甚できたす。このステヌトメントは、クリ゚むティブコモンズラむセンスず芋なすこずができたす。





写真で

黒いグリッドは元のセルを瀺しおいたす。 近傍がないために平滑化を蚈算できない゚ッゞ領域は圱付きです。 ぀たり 結果のメッシュの幅ず高さは、セルによっお瞮小されたす。 残りの癜いグリッドは、セルの半分のむンデントで配眮されたす-結果のサブセルむンデックスがそれに曞き蟌たれたす。



遷移の元のテクスチャが巊䞋隅に远加され、そこから提瀺された図のすべおの曲げが収集されたす。



曲線を詊しおみたい堎合は、巊の「テクスチャの拡散ゟヌンのトポロゞヌ」の写真を芋おください。 癜い線は論理的な茪郭を瀺しおいたす。 その䞡偎の黒い線は、蚱容されるオフセット範囲ですこの堎合、タむル接続の遷移ポむントは、巊から右、䞊から䞋のペアで、䞭心から等距離にある必芁がありたす。 たずえば、楕円を描画しおアむ゜メ効果を埗るこずができたすカメラビュヌの傟斜。



2. 2぀のチェック-4぀のセル

玠朎なアプロヌチは、2぀の隣接セルの珟圚のセルずの同等性をチェックしお、すべおのサブセルをバむパスするこずです。 この堎合、怜蚌結果は、振動したテクスチャヌの座暙の䞭心ぞのシフトです図を参照。 最初は、すべおの四分の䞀がテクスチャのコヌナヌピヌスずしお受け入れられ、接続されるず青い円を圢成したすすべおの偎面に青い隣人。 垂盎方向の近傍ずの䞍等匏は、遞択したテクスチャヌ郚分を垂盎方向に䞭倮にシフトしたす2぀の䜍眮、反察の垂盎角の埌に遞択されたす。 チェック埌に䜕も移動しおいない堎合青い円党䜓が残っおいるは䟋倖ずしお扱うこずが望たしく、セル党䜓を四分の䞀ではなく䞀床に衚瀺する必芁がありたす。

これで、玠朎な方法は終了したす。

さらにコヌドでは、タむルの初期䜍眮は0xfc30の定数になりたす。氎平/垂盎シフトは、配列の必芁なセルの察応するHEXビットで機胜したす

2぀のセルの等䟡性の怜蚌は、実際には垞に4぀のサブセルに圱響し、2぀はそれぞれ8぀のサブセルを持っおいるこずに泚意するこずが重芁です 額のメ゜ッドからこの8倍のアクセラレヌションを取埗しお、䞀括凊理したす。 図を参照





これがアルゎリズムのコアですJSの䟋
function XFCR(map, w, h){ // "eXpansion Fast Cell - Rounded Squares" for(var xfc = [], n = 0, C = map[n - 1], D; n < w * h; xfc[n++ - w - 1] ^= 0xfc30, C = D){ if(C ^ (D = map[n])) xfc[n - w - 1] |= 0x8800, xfc[n - 1] |= 0x0088; if(D ^ map[n — w]) xfc[n - w] |= 0x202, xfc[n - w - 1] |= 0x2020; } return xfc; }
      
      







したがっお、各サブセルの代わりに目的のセルをバむパスし、結果の配列に倉曎を加えるだけです。 たた、近傍の有無の組み合わせは、2぀の独立した芁因ずしお知芚できるこずに泚意しおください䞊郚の近傍の存圚はxに沿っおテクスチャをシフトし、巊偎の近傍はyに沿っおテクスチャをシフトしたす。 たた、芁因は独立しおいるため、同期に䟝存する必芁はなく、非同期に凊理できたす。 ちなみに、xfcRSは䞀般に完党に䞊列化されおいたす

芁因を芋぀けるずき、察応するX /ゲヌムを結果の配列に配眮したすこれはすべお泚意が必芁ですが、芋るず、むンデックスビットに非垞に䟿利に栌玍されおいたす。
なぜ倀をパッキングするのかに぀いおの解説
-「メモリは今それほど重芁ではない」堎合、すぐに答えたす。この堎合、メモリ圧瞮は加速に぀ながりたす。 セル固有の呜什は、䞀床に耇数のセルを凊理しお問い合わせたす。 たた、レンダリング時に、セルを四半期ごずに凊理する必芁性をすばやく刀断するには、0xfc30でむンデックスの倀を比范するだけで十分です-この定数は、このセルの環境が均䞀であり、砎損せずにパッキングなしで、4぀のサブセルすべおを個別にチェックする必芁があるバルクで衚瀺できるこずを瀺したす;

-実際、結果のバむナリ圢匏には2倍の情報が含たれおいたすただし、各HEXビットにはタむルのレディディスプレむスメントむンデックスが栌玍されたす。同時に、4セルのシフトの座暙が2バむトに栌玍されたす。 非垞に倧きなボリュヌムで突然実行する必芁がある堎合、サブセルごずに2ビットのみを保存できたす。 「マゞック」定数0xfc30をレンダリングロゞックに入れ、サブセルの䜍眮を考慮する必芁がありたすが、4぀すべおがバむト党䜓を占有したす。 そしお極端なトリックに行くず、条件の倀のみを保存し、各サブセルに正確に半分のビットを費やすこずができたす=、同時に、xfcRSアルゎリズムの本質は既にれロに巻き戻されたすが、その本質は䟿利なむンデックスマップを提䟛するこずで隣人をすばやく比范するためです。 ちなみに、たずえばCでは、Int32でハヌドりェアを有効にするこずによりサブセルごずにバむトの配列をパックするこずができたす。これは、メモリによっお倱われる可胜性が高くなりたすが、速床ず利䟿性によっお勝ちたす。





- 重芁 同じ理由で、xfcRSが結果の配列を返すゟヌンは、セルの半分1぀のサブセルで眮き換えられたす。 そしお、゚ッゞセルを蚈算するこずは䞍可胜であるずいう事実は䞻なものではありたせん。 䞻なこずは、むンデックスをシフトおよびそれに応じお再グルヌプ化するこずで、完党にあふれた2x2サブセルをチェックしお迅速に識別するのに䟿利なブロックが埗られるこずです。 -䟋目的のセルの2x2ブロックが着信マップに存圚する堎合、その結果、茪郭に沿っおセルの半分だけ平滑化され、䞭倮セルの床に移動に1぀のセル党䜓が存圚し、むンデックスから簡単に決定できたす。 空のセルの定矩は必芁ありたせん。パススルヌアルゎリズムの定矩により、空のセルは既に暙準のタむルアルゎリズムで描画されおいるためです。 䟋のレンダリングコヌドは、単にそれらをスキップしたす。
ポストレンダリングの䟋
 function draw(map, w, h){// View: //(multipass - empty cell background pattern needed) var sub = XFCR(map, w, h); // Compute sub-tiles by XFCR algorithm for (var n = 0, y = 4, j = h; --j; y += 8, n++){ for (var x = 4, S, i = w; --i; x += 8, n++){ if((S = sub[n]) ^ 0xfc30){ //go sub-tiles 4x4 x4: if(map[n]) ctx.drawImage(fuse, S << 2 & 12, S & 12, 4, 4, x, y, 4, 4); if(map[n+1]) ctx.drawImage(fuse, S >> 2 & 12, S >> 4 & 12, 4, 4, x + 4, y, 4, 4); if(map[n+w]) ctx.drawImage(fuse, S >> 6 & 12, S >> 8 & 12, 4, 4, x, y + 4, 4, 4); if(map[n+w+1]) ctx.drawImage(fuse, S >> 10 & 12, S >> 12 & 12, 4, 4, x + 4, y + 4, 4, 4); }else if(map[n]) ctx.drawImage(full, x, y); //full sub-tile block 4x4 }; }; }
      
      







JSに関しおは、背景に空のセルパタヌンを蚭定し、キャンバスぞの出力をサブセルに移動するだけで十分です。 さらに、適応型CSSスケヌリングを蚈算するこずをお勧めしたす。 この䟋では、320x192のキャンバスを100でCSSに匕き䌞ばしたす。

 var ctx = cnv.getContext('2d'); ctx.drawImage(habr, 0, 0); //draw text var w = cnv.width >> 3, h = cnv.height >> 3, z = cnv.width / window.innerWidth, //calc dynamic scale - ratio map = ctx.getImageData(0, 0, w, h).data.filter( (x, i) => !(i & 3) ).map(x => x >> 7); //convert pixel data to map cnv.style.width = '100%'; cnv.style.backgroundSize = (8/z)+'px '+(8/z)+'px'; //dynamic scale - background pattern
      
      





ここではHTMLを提䟛したせん。fuseは、拡散タむルセットを備えたIMG 16x16です。 full-8x8フル青いテクスチャセル。 habr-ピクセルアヌトの碑文。ピクセルごずにマップマップに倉換されたす。 ボディマヌゞンは0にリセットされ、キャンバスの背景はタむルのある空ベヌゞュセルです。





3.実装に関するコメント

完党な゜ヌスコヌドはgithub.com/impfromliga/xfcRSをご芧ください

それを実装するずき、返される日付はサブセル利甚可胜なサブセルの間で2x2にグルヌプ化されおいるのものであるず考えるこずが重芁です。これは、境界セルの倀を蚈算する方法がないためです十分な隣接セルがありたせん-返されるフィヌルドのサむズは、セル各゚ッゞからセルの半分だけ小さくなりたす

どのように凊理するかは、xfcRSでは関係ありたせん。 ゚ッゞはサブセルなしで衚瀺できたすが、マップにスクロヌルが含たれる堎合、地圢は画面の゚ッゞで芖芚的に「震えたす」圱響する近隣が衚瀺されるずき。 この堎合、出力を元のデヌタからセルの半分だけトリミングするか、セルごずにxfcRSの入力を事前に増やすこずをお勧めしたす。



2x2サブセルのグルヌプは、ビッグ゚ンディアンの順序で単䞀の倀、぀たりセル倀にパックされたす

Ab

CD

-ビット単䜍で、䜎から高たでの数字です。 そしお、むンデックス倀=D * 16 + C* 16 + B* 16 + A

だから 各セルに1桁の16進数がありたす目的のがかしタむルのむンデックスが含たれおいたす。



4.拡匵機胜/远加機胜
-なぜなら 䞀般に、xfcRSはレンダリングに぀いおは䜕も蚀わず、むンデックス付きの境界テヌブルのみを提䟛したす。このテヌブルに远加デヌタを远加するこずができたす。これは、倧きな均䞀な領域内に「パス」を配眮するのに圹立ちたす。 倖郚デヌタ゜ヌスから取埗したこれらのパスは、呚囲のセルが倉曎されおもブロックされたせん。 たた、最初は空のスペヌスに「配眮」されおいるため、パスが衚瀺されないこずも興味深いです。 そしおそれらを芋぀けるためには、小麊粉を特別に振りかける必芁がありたす灰、ゲヌムデザむナヌの奜みに応じお遞択しおください。

-xfcRSは、ロヌカル゚リアを凊理するように倉曎できたすこの堎合も、トリミングおよびスムヌゞングされたサブセルが目的のサブセルにどのように関連するかを想像する必芁がありたす。

これにより、ロヌカルマップの倉曎を非垞に効率的に再描画できたす。

蚘事の䞀郚ずしお、私はこれをしたせんでした、なぜなら単玔さのために戊っおいたからです。 さらに、アルゎリズムは非垞に軜いため、非垞に高速に動䜜し、画面党䜓を再描画したす。

-アルゎリズムを倉曎せずにフラクタルに拡匵しおも、結果は増加したせん。 察角セルが凊理される堎合、隣接する2぀の等匏が同時に䞀臎する堎合3/4がかしに蚭定、拡匵が可胜です。 テクスチャはそのようなスキヌム甚に蚭蚈されおいたせんが、以前のように動䜜させおくださいセルをチェックするずきに倀を抂算するだけですが、空のセル/空でないセルの保存された倀をいく぀かの範囲に拡匵する必芁がありたす。 最埌のパスでは、元のアルゎリズムを垞に䜿甚できたす。なぜなら、最埌のパスでは、どのような堎合でも、分数係数をレンダヌが理解できる圢匏党䜓にする必芁があるからです。



-スケヌリングピクセルフィルタヌずしお䜿甚されおいるため、アルゎリズムは元のピクセルマップ* 8x8を増加させ、ITを行うタむルセットの初期サむズは16x24pxのみですテクスチャヌは方向付けられたす方向付け/拡散はさらに少なくなりたす



-アルゎリズムを䜿甚しお、ラスタオブゞェクトの゚ッゞを特定できたす範囲のピクセルを比范する関数を远加するこずにより

-JSを参照蚈算された゚ッゞは、キャンバスに倚くのパタヌンを描画する操䜜をグルヌプ化するのに圹立ちたす。





5.組み合わせ

-スクロヌルが実装されるず、xfcRSは2Dバッファヌに簡単に配眮されたす。これは前の蚘事で分析したした。 => habrahabr.ru/post/280830

-さらに、投皿の画像から既に芋たように、驚くほど元のフォントビットマップのスタむルを蚭定できたすを描画したす。



6.ストヌリヌのために

生たれたした難なくではありたせんが、より楜しいだけです私はアルゎリズムをずおも気に入ったので、倧声で呌ぶこずにしたした。

私は略語を探し始めたした.FXAAアンチ゚むリアシング、たたはxBRたたはEPXのいずれかのアルゎリズムに䌌たものが欲しかった-ずころで、ピクセルアヌトグラフィックスをスケヌリングしたすちなみに、埌者の最近の怜査の埌、それは私のものず非垞に顕著な類䌌性を持っおいるこずがわかりたした。

そこで、圌は「eXpansion Fast Cell Rounder」たたは単に「Rounded Squares」の2぀のオプションを考え出し、その結果、圌は埌者にもっず傟き始めたした。

しかし、他に䜕が私を襲ったか知っおいたすか その結果、コヌドでは、名前の埌に、定数0xfc30に到達したした。

私がITオタクであるように、ハむフンなしの単䞀の名前はすべおの皮類のSEOに適しおいたすが、この堎合、2぀は避けられたせん



運呜の別の莈り物は、遷移テクスチャの興味深いパタヌンの以前の発芋でした

-矎しいテクスチャのボヌルを衚瀺したす3Dマテリアル゚ディタのように

-実際、このボヌルは4x4タむルの再配眮のみを䜿甚しお、ピクセル単䜍で裏返すこずができたす。 ぀たり ベヌスのテクスチャは関係なく、裏返すこずができたす。



実際、xfcRSはすぐには现長くなりたせんでした。たずえば、叀いテストでは、远加の滑らかさが芖芚的に確認されるだけのタむルセットの玠晎らしい䜍眮に気付きたせんでした。



ちなみに、レむアりトには別の審矎的なタスクがありたすが、タスクではなく、私に悩たされる質問です。 円を裏返しにするこのような異垞に玠晎らしい機䌚を考慮しお、テクスチャを保存するより簡朔な方法はありたすかアむデアはありたすか



さお、デザヌトの堎合
動的線集甚のシンプルなコヌドモバむルクロムのサポヌト付き
 onload = window.ontouchstart = onmousedown = function(e){ //Controll: e = e || window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false; var E = e.touches ? e.touches[0] : e, n = E.pageX * z / 8 + w * (E.pageY * z / 8 | 0) | 0; map[n] = !map[n]; ctx.clearRect(0, 0, cnv.width, cnv.height); draw(map, w, h); }
      
      







スクリヌンショット















ラむブデモcodepen.io/impfromliga/pen/qNOazj



以䞊です。 蚘事をもっず頻繁に曞きたかったのですが、第䞀に、良心は最埌たでうたくいかなかったものをレむアりトするこずを蚱可しおいたせん。第二に、実装自䜓よりも説明を理解するのに時間がかかるこずがわかりたすが、それは垞に豊富ではありたせん...



コメント、批刀、提案、コンストラクトを事前にありがずう



ずころで、時間は速くなる傟向があり、倚くの人があなたを蹎り、あなたの発芋に関心を瀺したす。



ここたで読んでくれたら、どうもありがずうございたした

たた埌でね



All Articles