Skip to content

Instantly share code, notes, and snippets.

View ogrew's full-sized avatar

ayato ogrew

View GitHub Profile
@ogrew
ogrew / fractal_box_counting.rs
Last active April 13, 2022 10:03
フラクタル図形の次元を求める(ボックスカウンティング法)
use linreg::{linear_regression, Error};
use num::Float;
use std::env;
fn fractal_dim(path: String) {
let img = image::open(path).unwrap();
let img = img.to_rgb8();
let width: f32 = img.width() as f32;
let height: f32 = img.height() as f32;
@ogrew
ogrew / gasket_p5.js
Last active April 13, 2022 07:44
シェルピンスキーのギャスケット
let W = 1200;
let H = 1200;
function setup() {
createCanvas(W, H);
background(255);
smooth();
noLoop();
noStroke();
pixelDensity(12);
}
@ogrew
ogrew / fermat.rs
Last active April 6, 2022 14:29
フェルマーテスト
use rug::{ops::Pow, Assign, Integer};
fn fermat_test(target: u32, base: u32) -> bool {
let n = target;
let mut a = Integer::new();
a.assign(base);
// 合成数であることを正とする
if a.pow(n - 1) % n != 1 {
@ogrew
ogrew / lucas.rs
Last active April 5, 2022 05:28
リュカ・レーマーテストの実装
use rug::{ops::Pow, Integer};
struct PrimeNumber {
num: Integer,
is_prime: bool,
}
fn lucas_lehmer_test(p: u32) -> PrimeNumber {
// Mercenne Number : (2^p - 1)
let mersenne_number = |v| (Integer::from(1) << v) - 1;
@ogrew
ogrew / tohoho_rust.rs
Created April 4, 2022 07:27
とほほのRust入門を読む
// ref: とほほのRust入門(https://www.tohoho-web.com/ex/rust.html)
use rand::Rng;
use std::boxed::Box;
use std::collections::HashMap;
// enum Color {
// Red,
// Green,
// Blue,
// }
@ogrew
ogrew / voronoi.glsl
Created February 3, 2022 04:48
2D Voronoi Fetch Texture
uniform vec2 resolution;
uniform float time;
uniform float width;
uniform float scale;
uniform float align;
out vec4 fragColor;
#define EPS 1E-4
@ogrew
ogrew / OrthographicCamera.py
Last active December 4, 2021 17:44
Orthographic Camera in TouchDesigner
# Orthographic projection
eps = 0.000001
def onSetupParameters(scriptOp):
params = scriptOp.appendCustomPage('Parameters')
params.appendFloat('Ratio', label='Aspect Ratio')
params.appendFloat('Size', label='Orthographic Size')
params.appendFloat('N', label='Near')
params.appendFloat('F', label='Far')
@ogrew
ogrew / PerspectiveCamera.py
Last active December 4, 2021 17:44
Perspective Camera in TouchDesigner
# Perspective Projection
eps = 0.000001
def onSetupParameters(scriptOp):
params = scriptOp.appendCustomPage('Parameters')
params.appendFloat('Size', label='Perspective Size')
params.appendFloat('Ratio', label='Aspect Ratio')
params.appendFloat('N', label='Near')
params.appendFloat('F', label='Far')
@ogrew
ogrew / ReversePerspectiveCamera.py
Last active December 4, 2021 17:18
Reverse Perspective Camera in TouchDesigner
# Reverse Perspective projection
eps = 0.000001
def onSetupParameters(scriptOp):
params = scriptOp.appendCustomPage('Parameters')
params.appendFloat('Perspective', label='Perspective')
params.appendFloat('Distance', label='Distance')
params.appendFloat('Ratio', label='Aspect Ratio')
params.appendFloat('Size', label='Orthographic Size')
@ogrew
ogrew / nfc2osc.py
Last active June 6, 2021 06:29
Raspberry Piに繋いだNFCタグリーダーの結果をOSCで母機に送るスクリプト
import nfc
import binascii
from pythonosc.udp_client import SimpleUDPClient
from pythonosc.osc_message_builder import OscMessageBuilder
# PC<->Raspberry Pi LAN (IP Address)
IP = "XXX.XXX.XXX.XXX"
PORT = 8400
client = SimpleUDPClient(IP, PORT)