Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Pyramid Makerの作成
Search
suzakutakumi
March 12, 2022
Technology
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pyramid Makerの作成
説明時に使うピラミッドをダウンロードできるWebサイトをReactで作成した
suzakutakumi
March 12, 2022
More Decks by suzakutakumi
See All by suzakutakumi
ピクロス作成の中間発表
suzakutakumi
0
110
しゅみろん
suzakutakumi
0
200
trap-search
suzakutakumi
1
66
マークダウンパーサーの自作
suzakutakumi
0
140
絵文字ジェネレータボットの作成
suzakutakumi
0
170
send_discord
suzakutakumi
0
74
独自ドメインについて
suzakutakumi
0
67
ESP32とAlexaを用いたエアコン制御
suzakutakumi
0
1.4k
スターリンマージソート
suzakutakumi
3
660
Other Decks in Technology
See All in Technology
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
1
110
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
110
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
1
930
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
260
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
200
AIをリアル世界に解き放つ 〜M5Stack×AIであなたのアイディアを手の平に〜
hamadakoji
1
570
スクラム祭り2026福井トラック_閉じたループから価値のスパイラルへ
kc_nakanishi
0
180
AIエージェントに 権限と鍵をどこまで渡すか
nrinetcom
PRO
2
120
Let's Change Our World—Again
snoozer05
PRO
6
700
Vue で書く 空間コンピューティング、TresJS と WebXR を使ったXR デバイスのフロントエンド開発
hiranuma
0
110
AI時代のエンジニアの情報発信〜個人の発信を組織の力に変える〜
ryo_kawamata
0
110
AIで選択肢が広がった組織設計の理想と現実
konifar
15
6.6k
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
750
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
960
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
My Coaching Mixtape
mlcsv
0
370
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
720
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Are puppies a ranking factor?
jonoalderson
2
4.1k
Building Applications with DynamoDB
mza
96
7.3k
Paper Plane
katiecoart
PRO
5
54k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Transcript
Pyramid Makerの作成 2022/03/12 NSEEM
自己紹介 HN: 朱雀 匠 ( 本名 : 鈴木 拓眞 )
学部 2 年 ( 新 3 年 ) Twitter: @suzakutakumi3 Portfolio: http://suzakutakumi.mydns.jp/
None
None
PyramidMakerとは 右図のようなピラミッド図を作成するツール 探しても無かったので作りました
作成手順 今回は React を用いて作成し、 GitHub Pages で公開した 1. canvas を用いてピラミッドを書く
2. 1 つの領域の高さを変えられるようにする 3. 領域を増やせるようにする 4. 領域の色を変えられるようにする 5. ダウンロードボタンをつける ※ CSS はわかりません
canvasを用いてピラミッドを書く 三角を領域の数だけ書いていく 高さから左下、右下の点を計算して三角を書いています context[i].beginPath(); context[i].moveTo(canvasWidth / 2, 0); //一番上 context[i].lineTo(canvasWidth /
2 - height * Math.sin(Math.PI / 6),height); //左下 context[i].lineTo(canvasWidth / 2 + height * Math.sin(Math.PI / 6),height); //右下 context[i].closePath(); context[i].stroke(); context[i].fillStyle = colors[i]; context[i].fill();
1つの領域の高さを変えられるようにする sizes( パーセンテージのリスト ) の数だけ、 map でスライダーを設置していきます 下のサイトを参考に、スライダーを複数設置しました https://qiita.com/taku_u9501/items/37c36cf9ad321b29302b {props.sizes.map((v,
i) => { return ( <input key={i} className="thmub" type="range" value={v} min="0" max="100" step="1" style={i === 0 ? {width: props.size, backgroundColor: "rgba(0, 0, 0, 0)" , border: "1px solid"}: { width: props.size, backgroundColor: "rgba(0, 0, 0, 0)" } } onChange={(e) => { props.onChange(e, i); }} /> ); })}
領域を増やせるようにする 色とサイズ ( 全部初期化 ) 、数をひとつ増やす <button onClick={() => {
setColors([...colors, "#eb7012"]); setSize([...Array(num)].map((_, i) => (100 / (num + 1)) * (i + 1))); setNum(num + 1); }} />
領域の色を変えられるようにする colors の数だけ map で input type=”color” を設置する {props.colors.map((c, i)
=> { return ( <> <input key={i} type="color" value={c} onChange={(e) => { props.onChange(e, i); }} /> <br /> </> ); })}
ダウンロードボタンをつける url に canvas の toDataURL 関数の返り値を設定する props.setURL(document.getElementById("canvas").toDataURL("image/png")); a タグに
href と download を設定する <a href={props.url} download="pyramid.png"> <button>ダウンロード</button> </a>
デモ https://suzakutakumi.github.io/PyramidMaker/
今後 - 領域を減らせるようにする - 枠線の大きさを変えられるようにする - 色に透明度を追加する