Skip to content

Instantly share code, notes, and snippets.

View Koshimizu-Takehito's full-sized avatar
🏝️

takehito Koshimizu-Takehito

🏝️
View GitHub Profile
@Koshimizu-Takehito
Koshimizu-Takehito / ColorMap.swift
Created February 11, 2025 07:01
色付きマップ
import SwiftUI
import MapKit
struct ContentView: View {
@State var position = MapCameraPosition.region(
MKCoordinateRegion(
center: CLLocationCoordinate2DMake(35.685175, 139.7528),
span: MKCoordinateSpan(latitudeDelta: 0.03, longitudeDelta: 0.03)
)
)
import SwiftUI
import MapKit
struct MonotoneMap: View {
@State var position = MapCameraPosition.region(
MKCoordinateRegion(
center: CLLocationCoordinate2DMake(35.685175, 139.7528),
span: MKCoordinateSpan(latitudeDelta: 0.03, longitudeDelta: 0.03)
)
)
@Koshimizu-Takehito
Koshimizu-Takehito / ShaderView.swift
Created February 11, 2025 04:35
MSLでパーティクル
import SwiftUI
struct ShaderView: View {
let name: String
private let start = Date()
var body: some View {
let shader = ShaderFunction(library: .default, name: name)
TimelineView(.animation) { context in
let seconds = context.date.timeIntervalSince(start)
@Koshimizu-Takehito
Koshimizu-Takehito / ReverseList.swift
Last active January 24, 2025 14:37
逆向きのリスト
import SwiftUI
struct Item: Identifiable, Hashable {
var id = UUID()
}
struct ContentView: View {
@State var items = [Item()]
var body: some View {
@Koshimizu-Takehito
Koshimizu-Takehito / TileAnimation2.swift
Created January 18, 2025 09:25
ViewのIdentity を意識してアニメーション素振り
import SwiftUI
// MARK: - Model
@MainActor
@Observable
final class Model {
var angles: [[Angle]]
init(row: Int, column: Int) {
angles = (0..<row).map { _ in
#include <metal_stdlib>
#include <SwiftUI/SwiftUI.h>
using namespace metal;
constant int MAX_RADIUS = 100;
constant int MAX_KERNEL_SIZE = 2 * MAX_RADIUS + 1;
float gaussian(float x, float sigma) {
return exp(-0.5 * x * x / (sigma * sigma)) / (sigma * sqrt(2.0 * M_PI_F));
}
@Koshimizu-Takehito
Koshimizu-Takehito / Mosaic.metal
Last active February 11, 2025 23:43
シェーダー関数でモザイク
#include <metal_stdlib>
#include <SwiftUI/SwiftUI.h>
using namespace metal;
[[ stitchable ]] half4 mosaic(
float2 position,
SwiftUI::Layer layer,
float scale
) {
position = floor(position / scale) * scale;
@Koshimizu-Takehito
Koshimizu-Takehito / Tile.metal
Created January 12, 2025 06:10
シェーダー関数でタイル
#include <metal_stdlib>
using namespace metal;
[[ stitchable ]] half4 tile(float2 position, half4 color, float4 box, float scale) {
position = position - box.zw/2;
position = position / (10 * scale);
int2 xy = int2(floor(position)) % 2;
if ((xy.x + xy.y) % 2) {
return half4(0.0, 0.0, 0.0, 1.0);
} else {
@Koshimizu-Takehito
Koshimizu-Takehito / SpiralShader.metal
Last active February 11, 2025 23:41
シェーダー関数で螺旋
#include <metal_stdlib>
using namespace metal;
[[ stitchable ]] half4 spiral(
float2 position,
half4 color,
float4 box,
float scale
) {
position = position - box.zw/2;
@Koshimizu-Takehito
Koshimizu-Takehito / SieveOfEratosthenes.swift
Last active January 1, 2025 13:48
素数のアルキメデスの螺旋
import SwiftUI
struct ContentView: View {
private static let primeNumbers = sieveOfEratosthenes(upTo: 1000000)
@State private var scale = 1.0
@State private var start = Date()
var body: some View {
TimelineView(.animation) { context in
let time = context.date.timeIntervalSince(start)