1 :
Name_Not_Found:
そして誰も語らないのであった
===========完===========
5 :
じゃがりきん:2011/05/12(木) 03:17:51.04 ID:???
語るにしてもcanvasについてより描画アルゴリズムについてだろうね
そんな限定的な話題にしたらもっと廃れるぞw
FAQっぽいものを充実させてください
┌──┐
┌┴┐ ├┐
│ ├┬┘│
│┌┴┤ │
└┤ └┬┘
└──┘
こんなふうに長方形を重ねるのは無理です
とか
水平や垂直の直線や長方形で境界をくっきりさせるには0.5pxずらす
とか
今やってる勉強が終わったらサンプル載せてってやるから待ってろ
9 :
Name_Not_Found:2011/05/13(金) 02:47:26.90 ID:gp+6rMmV
※デフォルトでは読み込んだ画像のデータをputImageData()できません
これさえなけりゃ気合いで何でもありにできるのにな
間違えたgetだった
>7は普通に3次元空間では可能
つまりWebGLで板ポリでやればいい
あとその見た目にするだけなら2dでもできる
と言ったものの
それは他のラスターグラフィックソフトも同じでcanvasだけが非力というわけではないか
そういやgetContextの引数2dしかみたことないけど3dとかあるのかすら
それぐらい日本語和訳みれば3dあるかどうかわかるだろ・・・
ケンカうってんの?
つ 'webgl'
w3cが言ってたwebGLの致命的な欠陥ってどうなったんだ?
なんとかしてくんなきゃ手が出せないぜ
(x1,y1) (x2,y2) (x3,y3) (x4,y4)の各四点に四隅が一致した画像ファイルを貼付けるにはどうすればいいでしょうか。
対角線で二分割した三角形をそれぞれ三点に一致させるしかないのでしょうか?
これモノクロにしたりするの時間かかるね
age
そのうちフォトショとかシーケンサの代わりになるサイトが出るな
24 :
Name_Not_Found:2011/06/20(月) 03:52:39.21 ID:eHxVgLCG
<body style="background-color:silver;">
<canvas id="canvas" width="500" height="500"></canvas>
<script>
var ctx = document.getElementById("canvas").getContext("2d");
ctx.fillStyle = "aqua";
ctx.fillRect(0, 0, 500, 500);
ctx.shadowColor = "blue";
ctx.shadowBlur = 100;
ctx.fillStyle = "lime";
ctx.fillRect(50, 50, 200, 200);
ctx.fillStyle = "red";
ctx.arc(250, 250, 150, 0, Math.PI * 2, true);
ctx.fill();
ctx.clearRect(150, 150, 200, 200);
</script>
</body>
赤い円の中を四角で切り抜いて
切り抜いた赤い円の内側(円の中心方向)にも影を付けるにはどうすればいいですか?
あと下の緑の四角と水色の四角も切り抜いた赤い円の内側から見えるようにしたいです
>>27 レスありがとうございます
キャンバス二枚用意するんですね
> >切り抜いた赤い円の内側(円の中心方向)にも影を付けるにはどうすればいいですか?
> これがどういう意味かよくわかんなからそれ以外の部分だけ
こういう意味です・・・伝わりますか
<body>
<canvas id="canvas" width="500" height="500"></canvas>
<script>
var ctx = document.getElementById("canvas").getContext("2d");
ctx.shadowColor = "red"; ctx.shadowBlur = 100;
ctx.fillStyle = "red";
ctx.arc(250, 250, 150, 0, Math.PI * 2, true); ctx.fill();
ctx.clearRect(150, 150, 200, 200);
ctx.shadowColor = "transparent"; ctx.shadowBlur = 0;
ctx.fillStyle = "aqua"; ctx.strokeStyle = "aqua";
ctx.beginPath(); ctx.moveTo(160, 130); ctx.lineTo(170, 140); ctx.moveTo(170, 130); ctx.lineTo(160, 140); ctx.stroke();
ctx.fillText("こっち側じゃなく", 180, 140);
ctx.fillStyle = "blue"; ctx.strokeStyle = "blue";
ctx.beginPath(); ctx.arc(165, 165, 5, 0, Math.PI * 2, true); ctx.stroke();
ctx.fillText("こっち側に", 180, 170); ctx.fillText("円の外側にある赤い影と", 180, 190); ctx.fillText("同じ影をつけたいです", 180, 210);
</script>
</body>
切り抜き部分の透過はsave()、restore()使えばひとつのcanvasでできそうだけど無理かな
>>28 var ctx = document.getElementById("canvas").getContext("2d");
ctx.shadowColor = "red";
ctx.shadowBlur = 100;
ctx.fillStyle = "red";
ctx.beginPath();
ctx.arc(250, 250, 150, 0, Math.PI * 2, false);
ctx.closePath();
ctx.moveTo(150, 150);
ctx.lineTo(150, 350);
ctx.lineTo(350, 350);
ctx.lineTo(350, 150);
ctx.closePath();
ctx.fill();
rect()が時計回りに定義されてるから、円弧を反時計回りにして
ctx.beginPath();
ctx.arc(250, 250, 150, 0, Math.PI * 2, true);
ctx.closePath();
ctx.rect(150, 150, 200, 200);
とシンプルにもできる
clearRect()は普通何かを切り抜くのに使うんじゃないってのと、
時計回り、反時計回りって言ってる意味を調べてみるといい
ctx.beginPath();
ctx.arc(250, 250, 150, 0, Math.PI * 2, true);
ctx.closePath();
だけを書くと赤い丸が表示されて
ctx.rect(150, 150, 200, 200);
だけ書くと赤い四角が表示されますが
何故両方書くと丸の中がくり貫かれて見えるようになるのですか?
>>30-31 イメージ通りの結果です!ありがとうございますm(_ _)m
> clearRect()は普通何かを切り抜くのに使うんじゃないってのと、
まとめてパスを描いてからまとめてfillすれば切り抜かれるんですね
closePathされているとそれぞれ別個のものとして塗りつぶされるんだと思ってました
切り抜くのはclearRectだと思っていたので四角にしか切り抜けないんだとばかり
またはglobalCompositeOperationを使わないといけないのかなと
> 時計回り、反時計回りって言ってる意味を調べてみるといい
これはよくわかりませんでした
今回は右回りでも左回りでも結局一周して円を作るので同じ結果になると思っていました
が、ためしに
>>30のほうをtrueに、
>>31のほうをfalseにしてみると
たしかにうまく切り抜かれませんでした
どうしてこうなるのかわかりません
わかりませんが、これ聞いてなかったらまたハマるところでした
気を配っていただきありがとうございます
> 時計回り、反時計回りって言ってる意味を調べてみるといい
これ理解できました
本当にどうもありがとうございます
canvasで文字列を画像として出すのってどーやんの?
37 :
問題 :2011/06/24(金) 08:37:05.59 ID:MN/NUHTR
中が塗りつぶされた五芒星を描画しなさい
38 :
Name_Not_Found:2011/06/24(金) 14:32:43.28 ID:N6K/EDza
fillText("★", 0, 0);
canvasの例文wikiみたいなのやれば儲かるよ今ならね
MDCでおk
html5.jpでおk
ってのが世間の風潮
そこらは例文というか解説
俺もやろうか考えたけど面倒くさいからやってない
ブログでゲームの作り方の解説はしたが
高度すぎたのか質問攻めにあって放置してるわ
ゲームテーマにして記事書くとありがたく思われるかもね
そのゲーム解説はJavascriptすか
canvasでsvg女子みたいに人体描画しようとした奴いる?
47 :
Name_Not_Found:2011/07/09(土) 03:09:59.27 ID:FC9y0/mh
x,y,zを渡すと直方体を描画する関数を作成しなさい。
\ ヽ ! | /
\ ヽ ヽ / / /
お断りだああああああああああぁぁぁ!!
\ | / /
,イ
 ̄ -- = _ / | --'''''''
,,, ,r‐、λノ ゙i、_,、ノゝ -  ̄
゙l ゙、_
.j´ . .ハ_, ,_ハ (.
─ _ ─ { (゚ω゚ ) /─ _ ─
). c/ ,つ ,l~
´y { ,、 { <
ゝ lノ ヽ,) ,
49 :
Name_Not_Found:2011/07/09(土) 15:17:54.54 ID:1GO6b5xa
>47
それはどのレベルまでやるんだ?
簡易設計図みたいに遠近法もなしの線だけでできた直方体か?
遠近法や陰、グラデーションの光源処理までさせたいのなら角度や距離等他にも数値が欲しい
そしてWebGLでやる
50 :
Name_Not_Found:2011/07/10(日) 02:34:32.95 ID:qPnf9h8H
直方体っぽくなればどんなのでもよしとします。
webGLはセキュリティー的になんかダメです。
canvasのみで作成しなさい。
52 :
Name_Not_Found:2011/07/19(火) 11:24:50.86 ID:aL6/Iowt
Canvasって数値配列に直接対応するフレームバッファを持っていたりするから、レンダリングは全部ソフトウエアでやるんですよね?
CPUの中の妖精さんたちが、1ピクセルずつRGB値を計算する、みたいな・・・
やはり、アルファ値の指定や塗りつぶし系の処理は思いっきり遅くなるんでしょうか?
>>52 大きい面積を塗りつぶすなどする場合はかなり遅くなると思います。
IE9だとFirefox5とかに比べて速いのでハードウェアアクセラレーションが効いているのかもしれません。
55 :
Name_Not_Found:2011/08/10(水) 03:17:37.24 ID:Movlnwp5
>55
おもろい。
スライダー付けてリアルタイムで変化したらもっと(・∀・)イイ
57 :
55:2011/08/11(木) 03:53:34.54 ID:jFgZBwV8
それをやると無理やり変化させてるのがモロバレなんだぜ
putImageData使えば、グラフィックソフト張りにいろいろできるじゃん、て思って実験してみました
作ってみたのは、ピクセル単位で任意のフィルタ処理するスクリプト
結論から言うと、JavaScriptの演算速度が遅過ぎて、現代の速度感覚にはあわないかと
環境はSafari 5.1、Xeon 2.27Ghz 8コア
500x500ピクセルのキャンバスを想定
・まず、ブラウザが1スレッドしか割り当ててくれない為、CPUの使用率は絶望的…1コアのみ処理が集中してるご様子
・単純な輝度の上げ下げだと、200msぐらい、ブラーフィルタだと幅1ピクセルでも500msぐらいから
・Web Workersではジョブ生成時にデータコピーを行うためか、明度を倍にするフィルタですら5秒ほどかかり、あまり期待できない感じ
・表示速度は問題なし。put後ラグなしで表示されます
正直なところ、キャンバスで動作する、任意のフィルタが使える画像処理アプリを作ってみたかったのですが、レスポンスなど考えると当面は無理そうです
JavaScriptの処理速度の底上げ、マルチスレッドの対応orGPU支援あたりだけど、あんまり期待が持てないなー
59 :
Name_Not_Found:2011/08/11(木) 13:30:49.46 ID:5x2BmW3D
Workerの使い方が下手なだけ
ふむ
とりあえず処理対象ピクセルのみピックするとして、10スレッドで割ってみると、上限は上がったけど頭打ちになります
メッセージのやりとりのオーバーヘッドが大きい、って所でしょうか大先生
みんな似たようなこと考えてんな
火狐で緻密な描画するとブラクラ状態だったが火狐5にしたらオペラ・クローム並になったぜ
62 :
Name_Not_Found:2011/08/12(金) 19:56:50.79 ID:HlaABMQT
IE9にしたらネイティブアプリ並になるよ
いろいろ調べてた所、大きな数の添字アクセスって高コストなんですね
500x500px 4ch として、Image.data の中身は1,000,000要素の配列。
これを縦横分割して二次元配列とした配列に入れ直した場合とで、それぞれのピクセルに演算をする速度を比較したんだけど、
一次元配列の場合より二次元のほうが1/3の時間で済みます
二次元配列の、一次元目をローカル変数に置いて処理すると、1/10まで抑えられました
置き換えの処理速度は計算にいれてませんが、全取得して代入すると元より高くついちゃうので、分割してピクセル値を読み取る仕組みが必要ですね
そのあたりをうまくやれば改善できるかもです
IEは…今までの散々な歴史があるので、まずは当たり前の事を当たり前にこなしてくれれば、、;
webGLに欠陥が見つかったとき、IEが対応させてもねーのに懸念を表明した時は何様だと思った
65 :
Name_Not_Found:2011/09/19(月) 14:21:43.65 ID:9ce+ex7x
質問です
Canvas内に図面を書いているのですが、寸法を縦書きにする方法をお教えください。
「1000」という文字をそのまま90°回転させたものを1000毎に複数個並べたいのですが、
var rad = arc/180*Math.PI;
ctx.rotate(rad);
ctx.fillText(txt,X,Y,maxWidth);
こんな感じのことをすると、1個だけ表示されて、残りはどっかに飛んでいってしまっているようです。
回転する座標がなんかcanvasの左上にあるのかもしれません。
どなたかご存知でしたらお教えください。
66 :
Name_Not_Found:2011/09/19(月) 16:45:16.77 ID:9ce+ex7x
自己解決しました
function arcTxt(ctx,txt,x,y,font,style,align,arc,maxWidth){
ctx.textAlign = align;
ctx.fillStyle = style;
ctx.font = font;
if(arc > 0){
var rad = -1*arc*Math.PI/180;
var rad2 = arc*Math.PI/180;
var exX2 = exX*Math.cos(rad2) - exY*Math.sin(rad2);
var exY2 = exX*Math.sin(rad2) + exY*Math.cos(rad2);
ctx.rotate(rad);
...つづく
67 :
Name_Not_Found:2011/09/19(月) 16:47:23.70 ID:9ce+ex7x
つづき
ctx.fillText(txt,exX2,exY2,maxWidth);
ctx.rotate(rad2);
} else {
ctx.fillText(txt,exX,exY,maxWidth);
}
}
これで望んでいる位置に角度のついたテキストを配置できます。
やってる内容としては、rotateで回転した座標系上で逆回転させた座標を取得して、
そこにテキストを配置しているので、align等が望み通りにはできませんが.....
68 :
Name_Not_Found:2011/09/19(月) 22:15:07.54 ID:9ce+ex7x
訂正
function arcTxt(ctx,txt,x,y...
のxとyをexXとexYに変えてください。
もしくは関数内のexXおよびexYを、xおよびyに変換してください。
失礼しました。
2時間で自己解決する男の人って
70 :
Name_Not_Found:2011/09/30(金) 09:49:14.65 ID:alH7YdbI
ザ他力本願
72 :
Name_Not_Found:2011/11/20(日) 01:29:25.52 ID:GJyblMyv
すげえけどソースが汚ねえ
74 :
Name_Not_Found:2011/11/24(木) 18:23:40.46 ID:vt5nE3zo
>>72 よく出来てるんだけど
ルールがいまいちわからん
75 :
Name_Not_Found:2011/12/30(金) 17:19:10.66 ID:ioXxy4gO
保守
76 :
Name_Not_Found:2012/01/27(金) 04:48:20.91 ID:oVXkhvaq
77 :
Name_Not_Found:2012/01/27(金) 19:54:11.54 ID:x0agjE11
すげー!
と思ってコード見たら読みづれぇぇ!
これって、音ソースをbase64エンコードして
dataスキームで<audio>に食わしてる
であってる?
78 :
Name_Not_Found:2012/01/27(金) 20:11:58.90 ID:WmaoenS6
100px*100pxサイズの画像を用意して
pieceSize=100;
Canvasで ctx.drawImage(img, 0, 0,pieceSize,pieceSize);
IEで見てもグーグルクロムで見ても描かれた画像の縦横比がおかしなことになりました。
縦が3で横が1.4くらいの比率で画像が表示されました。
ctx.setTransform(0.745, 0, 0, 0.374, 0, 0);
としたら何とか100px*100pxの画像になりました。
CanvasのdrawImageを使うとき何か注意が必要なのでしょうか?
Canvasを紹介しているサイトでは綺麗にピクセル単位で指定できると書いてあったので戸惑っています。
>>78 面倒くさいから
そのままコピペして動けるものを一式張って
80 :
Name_Not_Found:2012/01/27(金) 20:51:13.81 ID:WmaoenS6
>>80 きめえコードだな
俺様が手直してしてやるからまってろ
82 :
Name_Not_Found:2012/01/27(金) 21:04:24.58 ID:WmaoenS6
がーん、きめえ。
少し落ち込みました。
きちんとしたコードの書き方を習ったことがないので勉強になると思います。
期待して待っておきます。
どうもすいません。
84 :
Name_Not_Found:2012/01/28(土) 13:03:16.41 ID:pMrvoosz
>83
あのページ開けませんけど?
とりあえず自己解決したので報告します。
styleのwidthとwidthの二つが別物だった。
ということでした、両者のサイズを同じにすれば問題ないようです。
解説サイトをよんで勉強したのですが基礎的なことなので解説サイトでは最初に書いててほしい気もします。
85 :
76:2012/01/29(日) 10:00:22.18 ID:cFqi6PkD
>>77 あってるぜ
waveヘッダー(コピペ)に配列くっつけてbase64エンコード(コピペ)して
dataスキームでaudioのsrcにぶっこんで鳴らしてるぜ
画像を読み込んでCanvasに表示させると
2倍サイズの画像を使ってもぼやけちゃうんだけど
これはこういう仕様?
87 :
Name_Not_Found:2012/01/30(月) 06:01:12.34 ID:f52eME2W
>>85 今すぐどうこうじゃないけど
そのうち音鳴らすことがあった時
パクっていい?
88 :
85:2012/01/30(月) 07:34:04.91 ID:???
いいぜ
>>88 出来たらgithubにあげて有名人になってください
91 :
Name_Not_Found:2012/02/18(土) 09:19:47.71 ID:BuZPd3bC
こっちにも貼ろうとしたら見つかってたぜー
var image = document.createElement('img');
image.src = context.toDataURL()
で<img>化した画像に、適当な名前をつけたいんだが出来る?
保存させるときに名前付いてないのが困る
93 :
92:2012/02/19(日) 15:31:53.49 ID:???
cgiに画像名とdataURLを投げてファイル化して
srcに投入するって手はあるかもしれん
が、DOMのみで出来ればいいんだが・・・
連投失礼
>>90 putImageDataで透過出来てるってどういうことなの・・・
ちょっと違うけど簡単に書くとこうだぜ!
1 背景をput
2 aに全体をget
3 ボールのimageの.dataを1ピクセルごとに見て
ボールの位置のaの.dataを置き換える
4 aをput
1フレームで3回全体をとったりはったりしなきゃならない驚異の技だぜ!
96 :
Name_Not_Found:2012/02/23(木) 08:00:40.67 ID:WvQzb7f8
concat()で.dataの高速複製ができたらいいんだけどな
97 :
Name_Not_Found:2012/02/23(木) 17:15:41.85 ID:km5DjjGf
ピクセル単位で合成してたんだな
いつも
buffer = createElement('canvas');
g = this.buffer.getContext('2d');
g.fillRect(0,0,10,10);
ctx.drawImage(buffer,0,0,10,10,0,0);
てやって合成してたからputImageData使うなら軽く出来そう
長文スンマソン
たぶん大量に透過させない限りcanvasの機能使ったほうが早いぜ〜
99 :
Name_Not_Found:2012/02/24(金) 20:59:55.35 ID:g6KDZoBL
勉強になりやした
ぜ〜の人ありがとう
canvasマリオがレベル高過ぎて吹いたぜー
ってかあれどうなってんの??
setTimeoutとか使ってないっぽいんだけど
101 :
100:2012/03/04(日) 20:36:59.75 ID:???
自己解決しますた。。普通にinterval使ってました
その都度begin()stroke()begin()stroke()ってやってる?
mousemoveにイベントハンドラを設定し、
beginPath
moveTo
lineTo
stroke
closePath
の処理を繰り返しております。
素早くマウスを動かすとスムースな線が引かれ、ゆっくり動かすとリンク先のようになるため
mousemoveイベントが1px毎に発生し、1pxの太い幅が引かれそのようにトゲトゲのような
ものになっているのかと思います。
じゃ前回の位置からの距離はかって
最低いくつなら線引くってやればいんじゃね
距離=Math.pow((前回X-今X)*(前回X-今X)+(前回Y-今Y)*(前回Y-今y),0.5)
106 :
102:2012/03/28(水) 09:15:32.17 ID:???
>>105 ありがとうございます
私もそれを考えてみたのですが、
その最低の距離を大きくすると、小さな角を持った線が引けなくなり、
小さくすると、少し太くなるものの同じような状態になります。
また、大きくした状態でも、いろいろな角度に移動させると同じような状態になります。
隙間が開くのは当たり前なんだが。
目で見て納得できるようにjsをこうしてみ。
http://ideone.com/li1ot あとな、原因を追求するときはちゃんとログを取るように。
〜かと思います、で済ませるなよ。
対策は、自分で四辺形を描くしかない。
rectで書いたら角が円にならずにカクカクにならない?
線引くたびにclosePathしてんだから、どっちにしろ角は丸くならねえよ
mousedown時にbeginPath(), moveTo()
mouseup時にclosePath()すればいい
>>109 ありがとうございます
そのように書いてみたのですが、mouseupしたときに引かれる線は以前と同じでした。
112 :
Name_Not_Found:2012/03/29(木) 08:30:49.69 ID:jqQpvgho
>>102 曲がり角に太さを直径とする円を描画すればなめらかになるぜ
<hed>になってるけど
ちゃんとピンボールになっててワロタ
物理屋7日?
すごいな
もはやわけわからんくて手がつかれた
462万点
5000行とか読む気も失せるわwwww
116 :
Name_Not_Found:2012/04/08(日) 09:39:39.97 ID:4CNznIE6
>>114 うはw今までまっったく気づかなかったぜ!
直したぜ
Canvasの上でマウスをクリックしたら、クリックした位置に点を表示させたいのですが、
クリックされた座標で点を表示すると、マウスカーソルの右下に点が表示されます。
これをマウスアイコンの左上か、中心にするにはどうすればいいでしょうか?
座標をずらせばいいことまでは考えついたのですが、なにか方法があるのでしょうか?
マウスカーソルのサイズ取得の方法などはあるのでしょうか?
118 :
117:2012/04/08(日) 15:09:27.54 ID:???
すみません記載漏れがありました。
もう一点ご質問なのですが、クリックすると点が表示されるのですが、クリックしたままドラッグをすると、カーソルアイコンがテキスト選択のアイコンになってしまいます。
cssのcursor以外にドラッグ中のアイコンを指定する方法などあるのでしょうか?
独自カーソルを設定しても、ドラッグ中はテキスト選択アイコンになってしまいます。
コードぐらい出したらどうなんだ
通常はマウス座標をとると矢印のさきっちょの座標が返ってきます。
おそらく描画する時にcanvasのtopとleft分を足していないのでしょう。
121 :
Name_Not_Found:2012/04/15(日) 12:44:09.76 ID:esR/SmTo
満喫のハイスペックPCでcanvas二枚重ねにしたらputImageDataでもなんか透過できたわ
HTMLの画像化はサーバサイドかブラウザの拡張機能権限じゃないと無理ですか
無理だね。
DOMをCanvas内に描けるようにしようって提案もちらっと聞いたことあるけど、
もしそれができるようになったとしても、同一生成元とかの関係でピクセル取り出せるようになるのは望み薄かも。
なんでダメなんだろ
セキュリティー?
それが出来たらどのブラウザでも文字のラスターがとれるのに
toDataURLしてどっかに送信することでプライバシを容易く侵害出来るからだろ
意図しない外部のスクリプトが読み込まれてるのなら画像化しなくても侵害されるんでないの
パスワードとか入力欄だけ初期状態でキャプチャすればいいような
いま外部のスクリプトとかそんな話してない
自分のサイトの画面をキャプチャして何が問題なのかわからない
問題と思われるのは訪問済みかどうかの状態、フォームへの入力内容、greasemonkey等での変更、くらい?
訪問済みとフォームへの入力はキャプチャ実行時にブラウザ側で初期状態にすればいいし
greasemonkey等でのDOM等の操作はキャプチャしなくても取得できるし・・・
ここで言ったところでどうにもならないけど
どっかページ開く→ローカルにある画像かたっぱしっから読み込み→スクショ→どっか送信
そういう状況じゃ使えなくしたらいいじゃん
webGL問題もそうして解決したんでしょ
132 :
Name_Not_Found:2012/04/23(月) 18:14:51.67 ID:bhqvXkeC
ありがたやありがたや
さすがに今回のGoogleさんのロゴはIE8には対応できなかったみたいだな
まぁめんどくさくてしなかっただけかもしれないけど
相変わらずソース汚いな
135 :
Name_Not_Found:2012/04/25(水) 10:24:55.59 ID:r8ZSTI4L
連続ベジェもつけたぜ
137 :
Name_Not_Found:2012/04/29(日) 12:04:29.48 ID:aRNBZNFt
パーリンノイズ習得したら炎描画がすごいことになったぜ〜
数学スキル高すぎるな
中学レベルで止まってるからわけわからーん/(^o^)\
マンデルブロー集合をズームしていくやつとか作れたらかっこいいよね
物理屋だろ
物理と数学の違いがわからない
141 :
131:2012/04/30(月) 12:24:47.21 ID:o6cw4zyS
今マンデルブロ集合をつけたとこだぜ〜
1フレーム0.1秒ぐらいだから動画もやろうと思えばできるぜ〜
142 :
Name_Not_Found:2012/05/01(火) 10:25:24.46 ID:8HyFCtKP
ズーム動画もできたぜ〜
錯覚線となってるところは
モアレ(干渉縞)と言うぞ
144 :
138:2012/05/02(水) 02:03:54.69 ID:???
>>141 そんな簡単にやってのけちゃうなんてまじかっけー
色までついてるし感動した
145 :
Name_Not_Found:2012/05/02(水) 10:44:42.74 ID:MmaY98zv
うは〜
ブッダブロもできたぜ〜
>>143 サンクス!直したぜ〜
146 :
Name_Not_Found:2012/05/06(日) 10:23:00.08 ID:O3gv6j4V
ローレンツアトラクタもつけたぜ〜
なんでそんな色々知ってんのwwwww
文系だから用語すら聞き覚えないのばっかりだな
CG技術に応用されてる。フラクタルとかカオス数学のいろいろ。
149 :
Name_Not_Found:2012/05/08(火) 10:20:47.18 ID:PGbBWzNu
粒子法やろうとググッたけど5分で挫折したぜ!
googleがなんか2Dの物理エンジン出してなかったっけ?
あれ使えばできんじゃね?
JavaScriptで実装とかやったら流石にクッソ重くなるんじゃないだろうか
154 :
Name_Not_Found:2012/05/09(水) 10:15:59.33 ID:MhuyzbcX
リアプノフフラクタルをつけたぜ〜
>>153 これこれ
どうやってるかわかんないぜ!
畑政義写像を習得したぜ
動けばいいだけの汚らしいコードに見えて
かなり最適化されてるんだね
それとできるやつは変数関数名なんてとこはこだわらないんだなw
>>156 そういう奴もいるだけで、必要条件でも十分条件でもない
158 :
Name_Not_Found:2012/05/14(月) 09:37:12.08 ID:/Espzwv+
クリフォードアトラクタもつけたぜ
もし使う時は理屈だけ見て自分で使いやすいように1からコード書いてねー
159 :
131:2012/05/18(金) 12:15:33.81 ID:hNpI6/k+
エセ粒子法ができたぜ〜
地球に感動したわ
エセ地球だったけど
1ドット毎に違う色を指定して描画する最速の方法はどうすればいいの?
要するにブラウザが対応していない画像リーダーを作ってみたが、描画がめちゃ遅いんで。
色の指定に¨rgba(22,33,44,1)¨みたいな文字列を指定してたら、そりゃ遅いよな。。。
>>162 うぉお!こんなんあったのか。超速くなったありがとう!
これからはちゃんとw3のページも確認するよ。
164 :
Name_Not_Found:2012/05/22(火) 10:40:09.54 ID:WuGA3iAX
グモウスキーミラ写像ができたぜ〜
9000行ェ・・
昔ロードライク作ったけど12000行だったぜ
間違えたローグライクだ
canvasって画像加工できますか?
全体の色を黒くしたり白っぽくしたり
ピクセルのrgb値を反転させたり変えて他の色調にしたり
ぼかしたりモザイクにしたりなど
さすがにバイナリレベルまでいじるのはきついので
何かAPIがあるといいのですが
なんかそういうAPIありませんでしょうか?
ちょっとぐらい調べてから聞けクズ
170 :
Name_Not_Found:2012/05/30(水) 14:17:50.17 ID:bUb6SZEs
171 :
Name_Not_Found:2012/05/30(水) 14:18:23.64 ID:bUb6SZEs
ごめん、ここJSすれと間違えちゃったwww
172 :
Name_Not_Found:2012/05/30(水) 15:51:37.44 ID:GcwkN3Kz
適当にいじってたらオリジナルのアトラクタができたぜ〜
漸化式
パラメーターを複素数A,複素数B, 共役を~として
C=(A~-Zn~)×(Zn~-B~)
Z(n+1)=(C+Zn)÷(C+B)
コード
パラメーターをa,b,c,dとして
e=(a-x0) f=(y0-b) g=(x0-c) h=(d-y0)
i=e*g-f*h j=e*h+f*g
k=i+x0 l=j+y0 m=i+c n=j+d
x1=(k*m+l*n)/(m*m+n*n) y1=(l-n*x1)/m
173 :
Name_Not_Found:2012/05/30(水) 15:52:05.05 ID:GcwkN3Kz
おいおい、ここがcanvasの総合スレかよ…
part5くらい行ってるんだろうな、と思ったら全然書き込みが無いのな。
canvasを使っている人って少数派なのか?
別段書くことないしな
質問するにしても数えるほどしかメソッドないしググって終了
canvasは意外に敷居が高くて無理ポ
というより
>>173の人見ればわかるけど
描画処理は文系理系の差が出る分野だからな
自由自在にできる
>>173の中の人が羨ましいわ
177 :
173:2012/06/10(日) 11:02:54.20 ID:ABo3Xo2V
でも本当に使える人間ってのは数学まっったくできないのにフォトショで面白いことができる人なんだぜ〜
178 :
Name_Not_Found:2012/06/10(日) 11:07:43.05 ID:ABo3Xo2V
131にスーパーバラ曲線をつけたぜ
これはマジですごいぜ
179 :
Name_Not_Found:2012/06/13(水) 17:15:43.04 ID:EN4DvDde
透過・合成のところが参考になりました
そのまま真似してもよろしいでしょうか?
バラ曲線綺麗だね
なんとか絨毯の柄みたいだ
181 :
じゃがりきん:2012/06/14(木) 10:53:31.73 ID:zU/m6Hnn
>>179 いいぜ
でもまだ高速化できるからあれ見て自分で考えるといいぜ〜
182 :
Name_Not_Found:2012/06/14(木) 11:46:11.30 ID:zU/m6Hnn
あ
10000行超えてるんですがwwwwwwww
すげえな
もうライブラリ化しちゃえばいいのに
184 :
Name_Not_Found:2012/06/14(木) 22:27:12.59 ID:Kpb62vJK
185 :
Name_Not_Found:2012/06/16(土) 10:38:08.09 ID:Y1BAW2JD
ライブラリ化ってどうやるか知らないぜ〜
オブジェクトを一つ作ってネームスペースの代わりにして、そこに全部突っ込むんだ。
とりあえずは、それでおk
187 :
Name_Not_Found:2012/06/17(日) 11:33:52.53 ID:94yGOXle
188 :
Name_Not_Found:2012/06/19(火) 15:09:51.18 ID:BKNFn4aE
スバラッ
Canvas敷居高いって本気かよ
ペラ紙1枚に収まる程度の貧弱APIなのに……
おそらくペンタブと比べてみたいなニュアンスだろう
APIの少なさは敷居と関係ないのでは?
JSだってselectに数字並べて表示させるのと
アニメーション実装でグラフィカルで動的なコンテンツ作成じゃ
敷居の度合いが違うでしょう
canvasに線1本ひいて俺canvasできるんだぜとかは誰も言わない
>>187はすごいな
古いPCからスタートおしたら死にそうになったけど
一番右下からタヌキ ライオン フクロウに見えないでもない
でかいcanvasなのに速いな〜
でかいのはpngをbase64_encodeしてスクリプトに組み込んでるからだ
画像部分を消したら664kbから20kbになったぞw
でもまぁクロージャーコンパイラー使ってるとはいえ
20kbでこれとはすごいな
こういう作品が出れば出るほどcanvasの敷居が高く感じられる
197 :
187:2012/06/28(木) 12:10:45.31 ID:???
つべに動画あげて台湾人に売り込んできたぜー
魔神の人?うrlは?
魔神 でアップロード日で検索したら出たわ
カラパイアで紹介されてたの見た。作者は何者なんだ?
じゃがりこさんの作ったものまとめないの
202 :
じゃ :2012/07/06(金) 12:23:31.74 ID:l5DQpmYb
ソースどうにか汁wwww
//ifとか書いてるけどネストしてたりすると
どこのifかさっぱりわからないと思うわこれwww
204 :
Name_Not_Found:2012/07/08(日) 12:50:25.78 ID:udMyyPfZ
ちなみにどこまで行った?
205 :
Name_Not_Found:2012/07/09(月) 07:16:34.46 ID:FuvFKy+C
ブロック崩しやっと終わった
stage25が鬼畜すぎるwww
新作まだぁ?
age
207 :
じゃ:2012/08/05(日) 12:18:23.04 ID:Y+KFicop
今
>>187に魔神を追加してばっかでな〜んも作ってないぜ〜
208 :
じゃ:2012/08/15(水) 12:35:48.02 ID:zjEdFQZu
209 :
Name_Not_Found:2012/08/15(水) 12:42:57.51 ID:aImIa3Fi
相変わらず、糞コードだな。
211 :
Name_Not_Found:2012/09/14(金) 21:30:06.34 ID:0ZCdrfRy
>>210 さくっと見ただけだけど
複数の画像をよーいどんで読み込み→貼り付けってすると
読み込みの早い順になるから
画像読み込み→loadイベント→処理→次
ってやろうとしているんだと思う
で、キャッシュしているとloadが発火しないんじゃないかな
個人的には先に全部読み込み完了させておいてから処理するほうが好きだな
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
創価死ね
今流行のABC証明をcanvasで頼む
214 :
Name_Not_Found:2012/10/16(火) 12:55:03.45 ID:mVPlxbCr
時間潰しアーマーワロタ
216 :
Name_Not_Found:2012/10/18(木) 19:11:48.40 ID:YuSwgUtq
ドラゴンタートル強ぇ
これ内部でレベルとかあがってんの?
レベルうp目的で全部の敵倒してみたがHP減るだけで倒し損か?
ソース見て解析しろってことですね
HTML見ればレベルアップとかないって書いてある
質問です。
canvasのWebページをキャプチャし新しいタブに表示するプログラムがあるのですが
さらに、キャプチャした画像の色を(例として赤を緑に、青を黄色になど)変換したいと
思っているのですが手がつかず困っています。
どなたか教えて頂けませんか?
//ページ全体をキャプチャ
(function(){
var win = window.content;
var w = win.innerWidth + win.scrollMaxX;
var h = win.innerHeight + win.scrollMaxY;
var pos = chromeWindow.document.getElementById('main-window');
var scrollbox = chromeWindow.document.createElement('scrollbox');
scrollbox.width = '1';
scrollbox.height = '1';
pos.appendChild(scrollbox);
var canvas = win.document.createElement('canvas');
canvas.style.display = 'inline';
canvas.width = w;
canvas.height = h;
scrollbox.appendChild(canvas);
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.save();
ctx.scale(1.0, 1.0);
ctx.drawWindow(win, 0, 0, w, h, "rgb(255,255,255)");
ctx.restore();
gBrowser.addTab(canvas.toDataURL("image/png"));
pos.removeChild(scrollbox);
})();
getColordata(関係あるかどうか)など調べていますがわかっていません。
よろしくお願いします。
スレチだったらすみません
221 :
Name_Not_Found:2012/11/05(月) 14:19:12.03 ID:ki1QF9hM
スクショできるの知らんかったけどスクショしてcanvasに貼り付けれるなら
後はcanvasからime=getImageData()でバイナリデータとっていじれるぜー
赤と青を変えるぜ↓
function kanten(ime){
var a,b,imed,len;
imed=ime.data;
len=imed.length;
for(a=0;a<len;a+=4){
b=imed[a];
imed[a]=imed[a+2];
imed[a+2]=b;
};
};
でもスクショしたもんは多分セキュリティ外さないとgetImageData()できないかもしれないぜー 外し方↓
クロームの場合:
アイコンを右クリ→プロパティ→リンク先→
〜.exe" の後に --allow-file-access-from-files をつける(先頭とケツに半角スペースをつけてね)
すでにクロームを開いている場合はいったん閉じる
ファイアーフォックスの場合:
アドレスバーにabout:configと入力してエンター→
security.fileuri.strict_origin_policyってとこでダブルクリック
222 :
Name_Not_Found:2012/11/05(月) 21:14:59.99 ID:8AWmrkDb
寒天、いや寒転?
>>221 どうもありがとうございます。
ちょっと動作確認してきます。
本当にありがとうございます。
保守
226 :
Name_Not_Found:2013/01/10(木) 06:19:39.98 ID:rE/mitpA
227 :
Name_Not_Found:2013/01/15(火) 14:41:52.88 ID:JWS69SWh
パワハラ犯罪にたいする刑事罰(※本投稿のコピペ歓迎です)
人事原則
1 現行法では、社員が仕事を怠けたり、能力不足、就業規則違反、目標を達成できなくても解雇をしたり叱責することは違法です。どんな駄目社員、嘘つき社員、怠け者も定年まで解雇が違法なのが現行の正社員制度です。
2 パワハラは社風にあわない社員、成績の振るわない社員を自主退職に追い込む言わば人事的措置として用いられることが多い。
※違法な解雇の和解金相場は、労働審判で3ヶ月、通常裁判で1年以上の報酬、さらに社員が和解を拒めば復職が可能です。弁護士への着手金は12〜15万円+20%の和解金、和解拒否なら20〜50万円程度。
人事部・ホットライン・御用組合へ直訴
メリット: 一時的緩和や人事異動
デメリット: 役員へ情報筒抜け、危険分子の烙印(情報漏洩がホットライン直訴者に多いのは人事部の常識)、パワハラ放置で自主退職に追い込まれる
民事訴訟・調停・労働審判
メリット: 損害賠償
デメリット: 裁判費用、解雇措置、民事不介入で刑事事案化を阻止、長期係争、パワハラ上司の継続雇用
刑事告訴
メリット: 1パワハラ上司の解雇・懲戒、または2多額の和解金、1と2どちらでも被害者の雇用は維持
デメリット: 人事異動(出世コースから外れる)
◎録音は一方の当事者が取る限り合法です。※加害者に録音の同意を求める必要はありません。
◎告訴受理後の和解金は加害者の資産・収入に応じて変えてください。犯罪者の昨年の年収の半額程度×最大懲役年数が妥当です。
◎パワハラの被害についての告訴は1侮辱罪2脅迫罪3強要罪4威力業務妨害罪5傷害罪の順序で行ってください。警察・検察の協力(犯罪者の自宅・職場の強制捜査、留置所勾留)により罪の立証が楽になります。
◎刑事告訴した社員を解雇したり処遇面で著しい差別を行うことはないでしょうが、出世や管理職以上の昇進の可能性はあきらめるべきでしょう。
◎刑事告訴は民事訴訟と違って裁判による被害者への2次被害にありません。検察庁が被害者に代わって訴えをおこすので、無料で、時間と手間も告訴状をかくことと音声録音を残すだけです。
◎和解契約(公正証書・即決和解)では告訴した事実は秘匿事項となります。犯罪者が秘密保持契約を違反した場合の損害賠償金は、最低5000万円〜にしましょう。
228 :
Name_Not_Found:2013/02/04(月) 10:28:17.74 ID:UA1BFfVR
保守
229 :
Name_Not_Found:2013/03/06(水) 15:51:24.08 ID:0AOG3pFY
ボンバーマンもこれ使ってるの?
230 :
Name_Not_Found:2013/03/06(水) 19:10:31.53 ID:kMD4PmZG
ボンバーマンじゃないじゃん
whammy.jsというライブラリが面白い
canvasからwebm動画に変換できる
234 :
Name_Not_Found:2013/06/04(火) 03:17:16.08 ID:WqEOqPrp
>>234 すげーけど設定項目が多すぎ&分かりにくくて頭がパンクしたw
あとやっぱ各ブラウザによる不安定さは何時までもネックやね
!
やばい・・
Uint8Array+blob+createObjectURLが優秀すぎる
base64encodeせずに音を出せたぜ
すみません。スレ違いだとは思いますがSVGについて教えてください。
フチ付きの二つの図形を結合させたいのですがHTML5のSVGで可能でしょうか?
可能でしたら解説サイトなど教えていただけないでしょうか?
すみません。スレ違いだとは思いますがSVGについて教えてください。
フチ付きの二つの図形を結合させたいのですがHTML5のSVGで可能でしょうか?
可能でしたら解説サイトなど教えていただけないでしょうか?
右クリックからリンク先のURLをポップアップで表示するChromeの拡張機能を作っています。
アラートではリンク先のURLが表示されるのですが、ポップアップではURLを表示することができませんでした。
また、ポップアップに文字を書き込むことを試したのですが何も表示されませんでした。
popup.htmlに別のjsファイルを読み込むようにしないとダメなのでしょうか?
function popUp(info) {
alert(info.linkUrl);
chrome.windows.create({
"url":"popup.html",
"type":"popup"
},function(win){win.document.write("abc")});
}
chrome.contextMenus.create({
"title": "ポップアップを表示",
"type": "normal",
"contexts": ["link"],
"onclick":popUp
});
243 :
Name_Not_Found:2013/09/25(水) 06:52:21.79 ID:wjQYH4m7
なるほど、相変わらずわからん
245 :
Name_Not_Found:2013/10/07(月) 02:21:41.44 ID:6JbeY9iE
あげるならさjsdo.itだかなんかのカヤックが運営するあそこにあげてよ
247 :
245:2013/10/08(火) 02:55:04.15 ID:BYxKYpip
見てきたけどwonderflみたく左側にコード出るのかよ
俺のだと嫌がらせになるぜ〜
コード管理大変そうなソースだな
改行とかあるあたりコンパイルしたってわけでもなさそうなのに
こんなコード書いてたら自分じゃ途中でわけわからなくなっちまうで
249 :
Name_Not_Found:2013/10/22(火) 17:55:13.81 ID:QaUFyOTp
↑
バリバリjavascript
w
251 :
Name_Not_Found:2013/10/28(月) 19:56:53.96 ID:AKTpJBEP
少しはソースコードがましになってるwww
がやはり何をやってるのかさっぱりわからん
そのサイトで無改編のforkだけしてるやつなんなの
有用性のあるサイトが全くないよな。
え、これフラッシュじゃないの? というくらいのカッコいいサンプルサイトとかないのかな。
255 :
251:2013/11/23(土) 06:06:17.92 ID:KSATDeUj
みなさんのおかげでHotCodeに食い込みました
ありがとうございます><
じゃがりきんって人は数学者かなにか?
何者なんだ・・
チョン大でユークリッド幾何教えてるって昔オフで言ってた
大きな画像をcanvasに読み込んで縮小表示するとすげージャギります。
解決策ないですかね?
<img>タグで読み込んだ画像を縮小表示するときは、アンチエイリアスが効いて綺麗に表示されるのに…。
等倍で読み込む→getImageData→自前縮小→put
>>259 レスありがとうございます。
canvasの drawImage() を使ってリサイズせずに、
別の方法で画像をリサイズしてからcanvasにはリサイズ後の画像を等倍で描画しろ、ってことですね。
自前でリサイズ処理を実装するのが難しそうだ…。
ブラウザのcanvas実装が進化して、綺麗にリサイズできるようになる日が来るのを待ちますw
drawImage()で縮小する方法として、
「いったん目的の画像と元画像の中間の大きさの画像を生成する」
っていう段階的にリサイズする手があるみたいですね。
ジャギー発生の条件が「画像の縮小率が 50% を下回る」ということらしいので、
段階的に縮小して50%を下回らないようにすればジャギらないようです。
Canvas drawImage() で画像を縮めすぎるとギザギザする問題を解消する
http://jsdo.it/21f/nvIM
262 :
Name_Not_Found:2014/02/11(火) 09:37:58.89 ID:4E0HsFuc
そもそも50%以下でジャギるって仕様はどうなってんだ
バイリニア(周囲4マスしか参照しない)か?
画像を円形にくり抜くのって出来ないの?
265 :
じゃがりきん:2014/03/15(土) 16:06:12.32 ID:61UnCATO
266 :
Name_Not_Found:2014/03/17(月) 18:29:00.18 ID:9eq4Z8up
>>265 ザックリしか見てないけど
function ruup()などの関数名がイカス
読めるソースになってるw
268 :
Name_Not_Found:2014/03/23(日) 15:46:24.23 ID:ykVxlW4K
stroke()はrect()呼び出した後に毎回呼び出さず、最後に一回だけ呼び出せばいい
>>269 レスありがとうございます。
/* 四角を描く */
ctx.strokeStyle = 'rgb(255, 0, 0)'; //赤
for ( var key in coordinates ) {
ctx.rect( coordinates[key].x, coordinates[key].y, 25, 25);
}
ctx.stroke();
としてみたら、4つとも同じ色の枠線になったのですが、
なぜか少し薄い赤です。
それで、当てずっぽうですが、
/* 四角を描く */
ctx.strokeStyle = 'rgb(255, 0, 0)'; //赤
for ( var key in coordinates ) {
ctx.rect( coordinates[key].x, coordinates[key].y, 25, 25);
}
ctx.stroke();
ctx.stroke();
とstroke()を2回繰り返したら、4つとも普通の赤になりました。
自分のブラウザ(chrome最新版)がおかしいんでしょうか?
271 :
Name_Not_Found:2014/08/01(金) 21:21:33.37 ID:rp6Y6Wdn
幾何学の図形を描くのにCanvasは適していますか。
他にHTMLドキュメントで表現できる方法はありますか。
SVGのほうが最適でしょうか。
用途による
SVGのほうはHTMLと同じDOM操作で描くというより組み立てる感じに近い
fabric.jsってライブラリがcanvasとsvg両方に対応してる
SVGの最大の強みはスケーリング変えても画質の損失が無い事、
画像の要素の一部を移動や拡大とかだとその属性の変更で済んでしまう事
canvasの場合全面書き換えする必要がある
あとSVGはIllustratorやInkscapeなどを使用して事前に作成(外部ファイル化)が可能
難点といえば複雑な図形では描画に少し時間がかかる点か?
しかしこれはcanvasも似たようなものか
どちらもjpegやpngなどラスター画像を組み込む事も出来るので全てを描画する必要は無い
277 :
273:2015/02/18(水) 18:24:02.09 ID:???
>>274-276 教えてくださってどうも有難うございました。
たいへん参考になりました。
とりあえずinkscapeを使って描き、SVGで出力する方法でやってみます。
arcメソッドを使う場合はbeginPathもclosePathもいらないと思うんですが、使う理由は何ですか?
arcメソッドってパス関係ないと思うんですけど。
ほとんどのサンプルコードには使われているんですがこれらは間違っていると思うんです
moveToでサブパスが発生するから
arcだけしか使わない場合ならmoveToは不要だと思うんですよ
>>279 注意: fill メソッドがと呼ばれるときはどんな開いている図形は自動的に閉じられ、 closePath メソッドを使う必要はありません。
なるほど
arcで複数の円を作る場合ならmoveToはいらないという話です
矩形やlineToなどを使う場合は別です
fillやstroke、closePathを呼び出すまでarcを複数回呼び出した場合、それは1つのパス、って事
真円ならいらないね
弧だけなら線と組み合わせる場合があるからいる
moveToが要る要らないじゃなくて、要るとき底辺コーダーが罠に嵌らないように、ご丁寧にそういうサンプルコードが書かれてるんだよ
で、そのサンプルが伝播して『ほとんどのサンプルコードには使われている』状態になってる
大元がどこかは分かるだろ
fill,stroke,closePathが不要なのはfillRect,strokeRect,clearRectだけだね
>>289 上の方でちょっと話題になってるのと関連するけど、
beginPathが無いのとfillが1度だけしか呼ばれてないから1つの図形
と見なされてる
それと話題それるけどそのサイトいいね
ログインしなくても投稿できるのか
createRadialGradientの座標がどちらも一緒になってるよ
下は
var crg2 = ctx.createRadialGradient(150, 50, 10, 150, 50, 100);
かな?
あとfillでパスは閉じるのでclosePathは不要
あ、あと円グラデーションの終了点がかなり外側だから黒になり切らないね
100じゃなくて50じゃ?
var crg2 = ctx.createRadialGradient(150, 50, 10, 150, 50, 50);
なるほど、勉強になりました
グラデーションをつかうと一つずつ描画しないといけないのが難点ですね
よくわからん。
1つのオブジェクトのパスを指定して変換かけて描画する。
の繰り返しでいいだけじゃん?
>>298 save()
translate() rotate() translate()
fillRect()
restore()
translate() rotate() translate()
fillRect()
restore()
以下繰り返し
でしょ
当然rotateや2回目のtranslateの中身は変えないと全部重なるだけだが
多分そんな感じで作ったんですが最初から作りなおしたらできました。
なんで最初のが動かなかったのか原因は分かりません。
ありがとうございます
translateで横に100ずらしたいのに、何故かxとyの分だけ余計にずれてます
http://jsfiddle.net/0fs1dhfj/ 座標10:10に100x100の正方形を描画して、右方向に100ずらした位置に正方形を描画したいんですが
これ、正方形と正方形の間にスペースが空いてしまいます。
どうしてこうなるんでしょうか?
理解できました
translateで移動した位置が座標0:0となるんですね
transformって歴史的な理由で残されてるってw3cに書いてあったけどその歴史的な理由知ってる?
それを語るなら秦の始皇帝まで遡る事になるが良いかな?
canvas自体そんなに歴史があるわけじゃないのに何だろうね?
アフィン変換、行列変換の事を言ってるんだろうか?
Most of the API uses SVGMatrix objects rather than this API. This API remains mostly for historical reasons.
(”APIのほとんどは、SVGMatrixは、このAPIのではなく、オブジェクトを使用します。このAPIは、歴史的な理由のために主に残る。”)
確かにtranseformメソッドを呼ぶよりscale,rotate,translateメソッドをそれぞれ呼んだほうが扱いやすい気がする
cssにはskewが実装されてるのにcanvasには実装されてない
中途半端なのがtransformである
奥行きをつけるのにcssからなら楽勝だがcanvasでやると知識がないと無理