Skip to content

Instantly share code, notes, and snippets.

@pgtwitter
pgtwitter / PFA.py
Last active July 4, 2023 17:50
Armature設定ツール(ベジェカーブ選択,実行)(参考動画 https://www.youtube.com/watch?v=BKtVuqnCbK0 , https://www.youtube.com/watch?v=0c6yGBhpd9s )
import bpy
import mathutils
import math
bl_info = {
'name': 'Physics and FK Armature',
'author': 'p_g_',
'version': (0, 2),
'blender': (3, 6, 0),
'location': 'VIEW 3D > Tool(Sidebar)',
@pgtwitter
pgtwitter / .py
Last active July 2, 2023 04:53
Bézier曲線を繋げたカーブに対して,点qからの最短位置(sp)とその距離(d)及び何番目のBézier曲線か(idx)とその時のパラメータtの値を力技で取得する.
# %%
import matplotlib.pyplot as plt
import random
def closestPointOnCurveFromPoint(ps, q, ax):
def f(p, i, t):
return p[0][i]*(1-t)**3+p[1][i]*3*((1-t)**2)*t+p[2][i]*3*(1-t)*t**2+p[3][i]*t**3
def _d(p, q):
@pgtwitter
pgtwitter / .py
Last active June 25, 2023 06:32
固有値分解, 特異値分解の画像 (untitledBW.pngは縦横同じサイズの白黒画像)
# %%
import matplotlib.pyplot as plt
import numpy as np
import numpy.linalg as LA
from PIL import Image, ImageDraw, ImageFont
fnt = ImageFont.truetype("/System/Library/Fonts/ヒラギノ明朝 ProN.ttc", 40)
im = Image.open('untitledBW.png')
imAry = np.array(im)
# %%
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pgtwitter
pgtwitter / py.ipynb
Created June 3, 2023 17:44
"第3章 文脈のある一人ゲームに使いたい探索アルゴリズム"をpythonでやってみた (青木栄太 / ゲームで学ぶ探索アルゴリズム実践入門)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pgtwitter
pgtwitter / .py
Last active June 25, 2023 07:25
分割したデータ( https://gist.github.com/pgtwitter/1cd0b3e2aea0a755538e1400a6f96241 )を読み込んでひとまず表示できるようにしてみる
import bpy
import mathutils
import os
from os.path import exists
def d2r(v):
return v / 180.0 * 3.1415926
@pgtwitter
pgtwitter / .py
Last active June 25, 2023 07:25
気象庁の天気図をレイヤー毎に分ける(加工データの扱いについてはこちらを参照 https://www.jma.go.jp/jma/kishou/info/coment.html )
import gzip
import xml.etree.ElementTree as ET
import pathlib
def map(distDir, root, ns):
ret = root.findall("./g/g[@id='map']", ns)
mapSettings = [
['sea', 'path', 'fill', '#DEF'],
['fillmap', 'polyline', 'stroke', '#000'],
@pgtwitter
pgtwitter / .py
Last active May 29, 2023 09:52
3フレーム前から現在までの対象頂点位置を繋いだメッシュ(vとeのみ)を作成し,以降フレーム毎に位置を変えてシェープキーとして登録し,これを切り替えて動かしてみる.
import bpy
import mathutils
import bmesh
def d2r(deg):
return deg / 180.0 * 3.1415926
def deleteMesh(name):
@pgtwitter
pgtwitter / notification.py
Last active May 23, 2023 00:07
render completeをOSAScriptを用いて通知する addon
import bpy
from bpy.app.handlers import persistent
import subprocess
from os.path import exists
bl_info = {
"name": "Notification",
"author": "p_g_",
"version": (0, 2),
@pgtwitter
pgtwitter / .py
Last active May 13, 2023 07:31
Text Mesh
import bpy
import mathutils
def mkText(str="Text", name="Text_outer", extrude=0.2):
name0 = f'{name}'
if name0 in bpy.data.meshes:
bpy.data.meshes.remove(bpy.data.meshes[name0])
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.text_add()