change objectボタンをホバーすると、UIが表示されます 変更したい立体名をクリックして変更 完成に近づいてきましたね。 '26 4/27 530view達成 '25 2/1 300view達成 ‘24 12/1 200view達成 予定: リストデータ型を追加またはjsonデータに対応 v6.4: 立体を追加した時に設定画面に表示されます。 v6.3: 立体を変更するUIを追加、設定UIの文字が透明化しない問題を修正、新しい描画方法balancedを追加、scratchのデフォルトをbalancedに変更 v6.2.2: アニメーションにイージング関数を使用 v6.2.1: 設定画面にアニメーションを追加 設定画面の表示を調整 v6.2.0: 設定画面をpenに変更 以前の描画方法をqualityとし、新しい高速な描画方法をperformanceとして追加 設定画面から変更可能 v6.1.2: 軽量化 v6.1.1: 文字列表示を向上。立体の向き、バージョン情報を表示 v6.1.0: 重い文字列データを編集しないリストにまとめて保存し、それを読み込めるようになります。(コードの軽量化) v6.0.1: ワイヤーフレームモードを削除 v6: z sortにマージソートが使用されるようになります。(大幅軽量化) v5.2.1: FPSの表示にペンが使用されます。描画したポリゴン数と全体のポリゴン数が表示されます。 v5.2.0: データ読み込み時のみポリゴンを生成するようになります。(微軽量化) v5.1.0: fpsが10以下の時ワイヤーフレームモードになります。 v5.0.1: シェーディングを修正(面の重心との角度に変更) v5: zソートを追加、シェーディング機能を追加、ロードと描画が干渉しないようになります。 v4.3: グラフィック関数を変更 v4.2.2: 面の向きの判定を修正 v4.2.1: データ読み込みの不具合を修正 v4.2: 面の塗りつぶし色を指定できるデータ型2.1を追加 v4.1.2: 全ての立体のデータをv2に更新 v4.1.1: v2データの読み込みの不具合を修正 v4.1: 背面消去を実装 v4: 面の塗りつぶしを実装 v3: 視野角を実装。(FOVを0に近い値に設定すると、並行投影を再現できます)(FOVの定義あってないと思う) FOVを小さくすると、本来なら立体がとても大きく表示されますが、スクリーンの距離を遠くすることで、大きさを調節しています v2: 描画システムの変更とデータ型v2の開始 v1: 初期版 #Cube #pen #3d
面が凹多角形の時に塗りつぶしがバグります あと穴が空いた立体の影は無茶苦茶です 今後修正します<-ずっと修正してないけど() recommended: https://turbowarp.org/951384425 立体の追加方法 立体を変更ボタンを押して、作成したデータを入力 https://github.com/yamato080915/3D-py save dataの作り方1 stlファイルを用意→githubのto_scratchdata.pyをターミナルなどで実行して指示通り入力→生成されるテキストファイルの中身をコピペ save dataの作り方2 GeoGebraなどで、立体の全ての頂点のx,y,z座標を用意 {[(x座標のみのリスト)],[(y座標のみのリスト)][(z座標のみのリスト)]}{(面のデータ*1)};スクリーンの距離 という形でデータを作成 *1:座標のリストの番号で、1つの面の頂点のリストを[]でくくる(面の見える側から見て反時計回り) []の一番最後の頂点の後ろから、(色,鮮やかさ,明るさ)を追加すると塗りつぶしの色を変更できます。 スペースは不要、リストはカンマで区切る。 スクリーンの距離を700にすれば立体の座標が50,50,50から-50,-50,-50までに収めると最初の立方体に収まる大きさになります 凹多角形はうまく区切って凸多角形の組み合わせにしてくださいw ※注意 原点中心に回転します fpsの目安 scratch poly quality performance 900 11 13.5 1000 8.5 11 4000 2 3 turbowarp 250fps poly quality performance 1000 170 200 4000 30 40