Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Oleksandr Glagoliev fewlinesofcode

🏠
Working from home
View GitHub Profile
View GLSL-Noise.md

Generic 1,2,3 Noise

float rand(float n){return fract(sin(n) * 43758.5453123);}

float noise(float p){
	float fl = floor(p);
  float fc = fract(p);
	return mix(rand(fl), rand(fl + 1.0), fc);
}
@fewlinesofcode
fewlinesofcode / PageIndicator.swift
Last active Jun 29, 2020
SwiftUI Page Indicator implementation
View PageIndicator.swift
//
// PageIndicator.swift
//
// Created by Oleksandr Glagoliev on 6/24/20.
// Copyright © 2020 Oleksandr Glagoliev. All rights reserved.
//
import SwiftUI
// MARK: - Dot Indicator -
View time_warp_p5.js
// Twitter: @fewlinesofcode
var angle = 1.0;
var angularSpeed = 0.01;
var internalRadius = 130;
function setup() {
createCanvas(600, 600);
noStroke();
background(255);
View digital_citizens_p5.js
const w = 500;
const h = 500;
const numWalkers = 1000;
let walkers = [];
function setup() {
createCanvas(w, h);
background(255);
View pillow_p5.js
const s = (p) => {
const w = 400;
const h = 400;
// Center coordinates
const x0 = 200;
const y0 = 200;
// Radius
const r = 150;
@fewlinesofcode
fewlinesofcode / StructCompareUsingMirror.swift
Created Apr 2, 2020
Example of structure comparison in Swift
View StructCompareUsingMirror.swift
import Foundation
protocol KeyPathListable {
var allKeyPaths: [String: PartialKeyPath<Self>] { get }
var keyPathsList: [PartialKeyPath<Self>] { get }
}
extension KeyPathListable {
private subscript(checkedMirrorDescendant key: String) -> Any {
Mirror(reflecting: self).descendant(key)!
View UIBezierPath+RoundedCorners.swift
import UIKit
public extension CGPoint {
func distance(to point: CGPoint) -> CGFloat {
let xDist = x - point.x
let yDist = y - point.y
return (xDist * xDist + yDist * yDist).squareRoot()
}
}
View gist:7e3b398d840c4baa28e18a41d6cec4e0
import UIKit
extension UIBezierPath {
private static func addCorner(
_ path: UIBezierPath,
p1: CGPoint,
p: CGPoint,
p2: CGPoint,
radius: CGFloat,
isStart: Bool = false
@fewlinesofcode
fewlinesofcode / UIBezierPath+Chaikin.swift
Created Mar 22, 2020
Implements Chaikin corners rounding algorithm on ordered set of points
View UIBezierPath+Chaikin.swift
import UIKit
extension UIBezierPath {
private static func midpoint(_ a: CGPoint, b: CGPoint) -> CGPoint {
CGPoint(
x: (b.x + a.x) / 2,
y: (b.y + a.y) / 2
)
}
@fewlinesofcode
fewlinesofcode / Date2Str.swift
Created Feb 20, 2020
Human readable Date to String
View Date2Str.swift
let dcf = DateComponentsFormatter()
dcf.unitsStyle = .abbreviated
dcf.includesApproximationPhrase = false
dcf.includesTimeRemainingPhrase = true
dcf.allowedUnits = [.day, .hour, .minute, .second]
let past = Date().advanced(by: -10)
let now = Date()
let humanReadableString = dcf.string(from: past, to: now)
print(humanReadableString!)
You can’t perform that action at this time.