🌸 「なでしこ」
>
🍯 「貯蔵庫」
お花スタンプ
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
お花スタンプ 📖
花を描画して、中に文字を書きます。花びら数によって桜やコスモス、もっと多いと菊のような花になります。
プログラム:
(→大)
# ----------------------------------- # --- お花スタンプ version2.2 # --- スクショなどしてご利用ください。 # --- 花の色や形をある程度調整できます。 # --- 中の文字は1~3行で書きます。 # ----------------------------------- // 初期値 色配列={"赤色":赤色, "青色":青色, "黄色":黄色, "緑色":緑色, "紫色":紫色, "水色":水色, "黒色":黒色} 花びら数=5 描画サイズ=400 中心円半径=(描画サイズ/2)*(3/5) #円の外側に花びらを描く 内角N=((花びら数-2)*180)/花びら数 中心角=(360/花びら数)/2 色1=「rgba(0,0,0,0.0)」 花色=「#00BFFF」 文字色=「#00BFFF」 長さF1=0 長さF2=0 長さF3=0 線幅=5 速さ=10 STR="" // GUI作成 「 スタンプ作成 」のボタン作成して、はんこ作成ボタンに代入。改行作成。 「1.お花情報」のラベル作成。改行作成。 「1-1.花びら枚数」のラベル作成。 「{花びら数}」のエディタ作成して、花びら枚数エディタに代入。 改行作成。 「1-2.花の色」のラベル作成。 ["赤色","青色","黄色","緑色","紫色","水色","黒色","カラーコード"]のセレクトボックス作成し、花色セレクトに代入。 花色セレクトに「カラーコード」をテキスト設定。 「#ffc0cb」のエディタ作成して、花色エディタに代入。 改行作成。 「1-3.花びらの形」のラベル作成。 ["なめらか","直角"]のセレクトボックス作成し、花形1セレクトに代入。 花形1セレクトに「直角」をテキスト設定。 ["先割れあり","先割れなし"]のセレクトボックス作成し、花形2セレクトに代入。 花形2セレクトに「先割れあり」をテキスト設定。 改行作成。 「1-4.線の太さ」のラベル作成。 ["細い","ふつう","太い"]のセレクトボックス作成し、線セレクトに代入。 線セレクトに「ふつう」をテキスト設定。 改行作成。 「2.文字情報」のラベル作成。改行作成。 「2-1.中の文字」のラベル作成。 ["1行","2行","3行"]のセレクトボックス作成し、行数セレクトに代入。 行数セレクトに「3行」をテキスト設定。改行作成。 "たいへん"のエディタ作成して、文字エディタ1に代入。改行作成。 "よく"のエディタ作成して、文字エディタ2に代入。改行作成。 "できました"のエディタ作成して、文字エディタ3に代入。改行作成。 改行作成。 「2-2.文字の色」のラベル作成。 ["花と同じ色","赤色","青色","黄色","緑色","紫色","水色","黒色","カラーコード"]のセレクトボックス作成し、文字色セレクトに代入。 文字色セレクトに「”花と同じ色”」をテキスト設定。 「#ffc0cb」のエディタ作成して、文字色エディタに代入。 改行作成。 「3.おまけ」のラベル作成。改行作成。 「描画スピード(速0~100遅)」のラベル作成。 「{速さ}」のエディタ作成して、速さエディタに代入。 はんこ作成ボタンをクリックした時には、 ユーザデータ設定。 花データ設定。 花描画。 はんこ文字描画。 ここまで。 ●ユーザデータ設定とは 花びら枚数エディタのテキスト取得を半角変換して花びら数に代入。 中心円半径=(描画サイズ/2)*(3/5) #円の外側に花びらを描く 内角N=((花びら数-2)*180)/花びら数 もし、(花形1セレクトのテキスト取得)="直角"なら 内角N=90 ここまで 中心角=(360/花びら数)/2 花色=色配列[花色セレクトのテキスト取得] もし、(花色セレクトのテキスト取得)="カラーコード"なら 花色=花色エディタのテキスト取得 ここまで 文字色=色配列[文字色セレクトのテキスト取得] もし、(文字色セレクトのテキスト取得)="カラーコード"なら 文字色=文字色エディタのテキスト取得 ここまで もし、(文字色セレクトのテキスト取得)="花と同じ色"なら 文字色=花色 ここまで 線幅=5 もし、(線セレクトのテキスト取得)="細い"なら 線幅=2 ここまで もし、(線セレクトのテキスト取得)="太い"なら 線幅=10 ここまで 速さエディタのテキスト取得を半角変換して速さに代入。 ここまで ●花データ設定とは // 長さAを計算 中心角R=中心角をラジアン変換。 AX=中心円半径*SIN(中心角R) AY=中心円半径*COS(中心角R) 外角A=(内角N-180)/2 外角RA=外角Aをラジアン変換。 // 花びら縦部分 長さF1=(TAN(外角RA)*AX + (描画サイズ/2) - AY)の絶対値 // 花びらの先 長さF2=((TAN(外角RA)*AX)/SIN(外角RA))の絶対値 // 先割れ 長さF3=0 もし、(花形2セレクトのテキスト取得)="先割れあり"なら 長さF2=長さF2*3/5 tmp=長さF2*2/5 tmp=tmp*COS(外角RA) 長さF3=(tmp*tmp+tmp*tmp)の平方根。 ここまで ここまで。 ●花描画とは 全描画クリア。 カメ作成 速さにカメ速度設定。 中心角だけカメ左回転 // 1 色1にカメペン色設定 線幅にカメペンサイズ設定 中心円半径だけカメ進む 花色にカメペン色設定 花びら数回、繰り返す //1回、繰り返す // 2 (中心角)だけカメ右回転 長さF1だけカメ進む // 3 内角N/2だけカメ右回転 長さF2だけカメ進む // 先割れ ((180-内角N)/2+45)だけカメ右回転 長さF3だけカメ進む 90だけカメ左回転 長さF3だけカメ進む ((180-内角N)/2-45)だけカメ左回転 // 3 (180-内角N)だけカメ右回転 長さF2だけカメ進む // 2 内角N/2だけカメ右回転 長さF1だけカメ進む (180+中心角)だけカメ右回転 ここまで カメ非表示 ここまで ●はんこ文字描画 文字情報=[] もし、(((文字エディタ1のテキスト取得)の文字数)>0)ならば 文字情報に(文字エディタ1のテキスト取得)を配列追加 ここまで もし、(((文字エディタ2のテキスト取得)の文字数)>0)ならば 文字情報に(文字エディタ2のテキスト取得)を配列追加 ここまで もし、(((文字エディタ3のテキスト取得)の文字数)>0)ならば 文字情報に(文字エディタ3のテキスト取得)を配列追加 ここまで Nを(文字情報の配列要素数)から2まで繰り返す 文字情報に""を配列追加 ここまで もし、(行数セレクトのテキスト取得)="1行"ならば STR=文字情報[0] 文字列チェック(STR) STRNUM=それ R=中心円半径 X=((R*R)-(R*5/9)*(R*5/9))の平方根 H=R*4/9 W=2*X STRSIZE=(W/STRNUM)を0で小数点切下 STRX=描画サイズ/2-X STRY= (描画サイズ/2)+STRSIZE/2-20 もし、STRNUM=1ならば STRSIZE=140 STRX=130 STRY=230 ここまで もし、STRNUM=2ならば STRY=STRY-10 ここまで 文字色に塗色設定 「{STRSIZE}px sans-serif」に描画フォント設定 [STRX, STRY]にSTRを文字描画 ここまで もし、(行数セレクトのテキスト取得)="2行"ならば // 長いほうを基準にする STR=文字情報[0] もし、((文字情報[0]の文字数)<(文字情報[1]の文字数))ならば STR=文字情報[1] ここまで 文字列チェック(STR) STRNUM=それ R=中心円半径 X=((R*R)-(R*6/9)*(R*6/9))の平方根 W=2*X STRSIZE=(W/STRNUM)を0で小数点切下 STRX=描画サイズ/2-X STRY=(描画サイズ/2)-20 OFFSET=STRSIZE //「({STRX},{STRY})、STRSIZE={STRSIZE}」と言う。 もし、STRNUM=1ならば STRSIZE=90 STRX=150 OFFSET=STRSIZE ここまで もし、STRNUM=2ならば STRSIZE=80 STRX=120 OFFSET=STRSIZE ここまで //「({STRX},{STRY})、STRSIZE={STRSIZE}」と言う。 文字色に塗色設定 「{STRSIZE}px sans-serif」に描画フォント設定 [STRX, STRY]に文字情報[0]を文字描画 // 上 [STRX, STRY+OFFSET]に文字情報[1]を文字描画 // 下 ここまで もし、(行数セレクトのテキスト取得)="3行"ならば // 長いほうを基準にする STR=文字情報[0] もし、((STRの文字数)<(文字情報[1]の文字数))ならば STR=文字情報[1] ここまで もし、((STRの文字数)<(文字情報[2]の文字数))ならば STR=文字情報[2] ここまで 文字列チェック(STR) STRNUM=それ R=中心円半径 X=((R*R)-(R*7/9)*(R*7/9))の平方根 W=2*X STRSIZE=(W/STRNUM)を0で小数点切下 STRX=描画サイズ/2-X STRY=(描画サイズ/2)-50 OFFSET=50 //「({STRX},{STRY})、STRSIZE={STRSIZE}」と言う。 もし、STRNUM=1ならば STRSIZE=60 STRX=165 STRY=(描画サイズ/2)-50 OFFSET=STRSIZE ここまで もし、STRNUM=2ならば STRSIZE=55 STRX=140 STRY=(描画サイズ/2)-55 OFFSET=STRSIZE ここまで 文字色に塗色設定 「{STRSIZE}px sans-serif」に描画フォント設定 [STRX, STRY]に文字情報[0]を文字描画 // 上 [STRX, STRY+OFFSET]に文字情報[1]を文字描画 // 中 [STRX, STRY+OFFSET*2]に文字情報[2]を文字描画 // 下 ここまで ここまで ●文字列チェック(PSTR) CNT=PSTRの文字数 NUM=PSTRの文字数 TMP=PSTRを文字列分解。 Nを0から(CNT-1)まで繰り返す TMP[N]を「^[\u0020-\u007E\uFF61-\uFF9F]」で正規表現マッチ。 もし、それがnullならば、 違えば、 NUM=NUM-0.5 ここまで ここまで NUMを切上してNUMに代入 NUMを戻すこと。 ここまで
プログラムを実行
⭐ 最上(もがみ) 作
タイトル:
お花スタンプ
ライセンス:
CC0 (著作権破棄)
タイプ:
wnako
タグ:
-
利用バージョン:
3.2.30
作成日時:
2021/12/10 14:50 (編集: 2021/12/23 12:00)
公開の投稿
⭐⭐
ログイン
して★を付けよう!
Twitterへ投稿
📝作品を編集
作品公開情報
📍この作品のURL:
📍アプリ(即時実行)のURL:
📍アプリ(実行ボタンあり)のURL:
📍ブログパーツ:
上記HTML↑をブログに貼り付けることでアプリを埋め込めます。
📍ライブラリ直リンク - 『!「***」を取込』で使うとき:
📍なでしこハブ (最新版の反映は1日後):
ソースの確認
編集履歴の確認
通報数:
0
通報って何?