Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А что сложного в ее подделке по сравнению с любым другим микроузором?

Напомнило искажение горизонта событий, но уже на больших масштабах иллюзия уплотнения этих концентрических окружностей исчезла


void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 coord = fragCoord - (iResolution.xy/vec2(2.0));
float factor = 50.0;
// WARNING: weird zooming out
factor = float(int(iTime*25.0) + 1) / 5.0;
coord *= factor;
int x = int(coord.x);
int y = int(coord.y);
int a = x*x + y*y;
// WARNING: flashing
// a += int(iTime * 5000.0);
// a -= int(iTime * 1000.0);
// emulating JS: a.toString(16) + "0".repeat(6 - a.toString(16).length)
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
// emulating JS: c.substring(0, 3) + c.substring(c.length-3);
while (a > 0xFFFFFF) {
a = ((a ^ (a & 0xFFF)) >> 4) | (a & 0xFFF);
}
fragColor = vec4(
float((a >> 16) & 255) / 255.0,
float((a >> 8) & 255) / 255.0,
float((a >> 0) & 255) / 255.0,
1.0
);
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 size = iResolution.xy;
float speed_fly = 150.0;
size = vec2(iTime * speed_fly);
vec2 coord = fragCoord - (size.xy/vec2(2.0));
// float factor = 50.0;
// WARNING: weird zooming out
// factor = float(int(iTime*25.0) + 1) / 5.0;
int x = int(coord.x);
int y = int(coord.y);
int a = x*x + y*y;
//a += int(iTime * 1000.0);
// WARNING: flashing
// a += int(iTime * 5000.0);
// a -= int(iTime * 1000.0);
// emulating JS: a.toString(16) + "0".repeat(6 - a.toString(16).length)
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
if (a < 0x100000) a = a << 4;
// emulating JS: c.substring(0, 3) + c.substring(c.length-3);
while (a > 0xFFFFFF) {
a = ((a ^ (a & 0xFFF)) >> 4) | (a & 0xFFF);
}
fragColor = vec4(
float((a >> 16) & 255) / 255.0,
float((a >> 8) & 255) / 255.0,
float((a >> 0) & 255) / 255.0,
1.0
);
}


https://www.shadertoy.com/view/tstfz7
Ага, по "zone plate sampling aliasing" гуглятся похожие картинки

$('#C').on('mousemove touchmove', function(e){
if (Tone.context.state !== 'running') {
Tone.context.resume();
synth = new Tone.PolySynth().toDestination();
window.synth = synth;
if ((typeof si) === 'undefined') {
mr = 0.1;
si = setInterval(function(){
X = Math.abs(window.e.pageX-1024);
Y = Math.abs(window.e.pageY-1024);
if (X*X+Y*Y>R*R) return;
memory = new Array(); n=0;
memory.push( Math.floor( Math.abs( Number.parseInt( rgb((X*X+Y*Y).toString()).substring(0,2), 16 )+512 ) ) );
memory.push( Math.floor( Math.abs( Number.parseInt( rgb((X*X+Y*Y).toString()).substring(2,4), 16 )+256 ) ) );
memory.push( Math.floor( Math.abs( Number.parseInt( rgb((X*X+Y*Y).toString()).substring(4,6), 16 )+0 ) ) );
synth.triggerAttackRelease([memory[n], memory[n+1], memory[n+2]], Tone.now(), 0, 0.125);
}, 128);
}
}
});
$(document).mousemove(function(e){
window.e = e;
});модели вселенной, описывающей микро и макромирА можно подробнее? Это как? И это тоже не понятное утверждение:
Эта модель — абсолют, под этим я понимаю, что ее физикоматематическая модель существует сама по себе, еще задолго до своего открытия и независимо от человека, как самодостаточная форма бытия
$(document).ready(function(){});
//заменил на
(function(){})();
//что за скобки? https://developer.mozilla.org/ru/docs/Словарь/IIFE
$('body').append('<canvas id="C" width="'+(R*2)+'" height="'+(R*2)+'">');
//заменил на
document.body.innerHTML=('<canvas id="C" width="'+(R*2)+'" height="'+(R*2)+'"></canvas>');
//appendChild() требовал больше изменений, document.write() запускался только поверх открытой страницы но не "новой вкладки"(function(){
var R=1024; var D=2*R;
var rgb = function(c){
if(c.length<=6) return c+("0".repeat(6-c.length));
else return c.substring(0, 3)+c.substring(c.length-3);
}
document.body.innerHTML=('<canvas id="C" width="'+(R*2)+'" height="'+(R*2)+'"></canvas>');
var canvas = document.getElementById('C');
var ctx = canvas.getContext('2d');
ctx.fillStyle="#ffffff00";
ctx.fillRect(0, 0, 256, 256);
for(var x = 0;x<D;x++) {
for(var y = 0;y<D;y++) {
var X1 = R-x;
var Y1 = R-y;
var X2 = R+x;
var Y2 = R+y;
if (( x*x+y*y ) <= R*R ) {
ctx.fillStyle="#"+( rgb( (x*x+y*y).toString(16)) );
ctx.fillRect(X1, Y1, 1, 1);
ctx.fillRect(X1, Y2, 1, 1);
ctx.fillRect(X2, Y1, 1, 1);
ctx.fillRect(X2, Y2, 1, 1);
} } }
})();
вообще я помешался на этой форме — в ней есть всё и ничто. можно рассмотреть что угодно. так понятно и так непонятно. если для вас это не так загадычно, попробуйте ответить на вопрос: откуда там вибрирующие пузырьки?package main
import (
"image"
"image/color"
"image/draw"
"image/png"
"os"
"strings"
"strconv"
//"fmt"
)
func ConvertToColor(s string) (r string) {
r = s
if len(s)<6 {
r = s+strings.Repeat("0", 6-len(s))
} else if len(s)>6 {
r = string(s[0:6])
}
return r
}
func ParseHexColorFast(s string) (c color.RGBA) {
c.A = 0xff
if s[0] != '#' {
return c
}
hexToByte := func(b byte) byte {
switch {
case b >= '0' && b <= '9':
return b - '0'
case b >= 'a' && b <= 'f':
return b - 'a' + 10
case b >= 'A' && b <= 'F':
return b - 'A' + 10
}
return 0
}
c.R = hexToByte(s[1])<<4 + hexToByte(s[2])
c.G = hexToByte(s[3])<<4 + hexToByte(s[4])
c.B = hexToByte(s[5])<<4 + hexToByte(s[6])
return
}
func main() {
R:=1024
D:=R*2
new_png_file := "tetrascope.png"
myimage := image.NewRGBA(image.Rect(0, 0, D, D))
bgcolor := color.RGBA{0, 0, 0, 0}
draw.Draw(myimage, myimage.Bounds(), &image.Uniform{bgcolor}, image.ZP, draw.Src)
for x:=0; x<R; x++ {
for y:=0; y<R; y++ {
x1 := R-x-1
x2 := R+x-1
y1 := R-y-1
y2 := R+y-1
if x*x+y*y <= R*R {
var c int64;
c = int64(x*x+y*y);
col := "#"+ConvertToColor(strconv.FormatInt(c, 16))
//fmt.Println(col, x, y)
color := ParseHexColorFast(col)
pixel1 := image.Rect(x1, y1, x1+1, y1+1)
pixel2 := image.Rect(x1, y2, x1+1, y2+1)
pixel3 := image.Rect(x2, y1, x2+1, y1+1)
pixel4 := image.Rect(x2, y2, x2+1, y2+1)
draw.Draw(myimage, pixel1, &image.Uniform{color}, image.ZP, draw.Src)
draw.Draw(myimage, pixel2, &image.Uniform{color}, image.ZP, draw.Src)
draw.Draw(myimage, pixel3, &image.Uniform{color}, image.ZP, draw.Src)
draw.Draw(myimage, pixel4, &image.Uniform{color}, image.ZP, draw.Src)
}
}
}
myfile, err := os.Create(new_png_file) // ... now lets save imag
if err != nil {
panic(err)
}
png.Encode(myfile, myimage) // output file /tmp/two_rectangles.png
}
Интересная форма