토론

let circles = []; let numCircles = 20; let angle = 0; function setup() { createCanvas(800, 800); noStroke(); for (let i = 0; i < numCircles; i++) { circles.push({ x: width / 2, y: height / 2, radius: 20 + i * 15, speed: 0.02 + i * 0.005, phase: i * 0.3 }); } } function draw() { background(0); translate(width / 2, height / 2); for (let i = 0; i < circles.length; i++) { let c = circles[i]; let x = cos(angle * c.speed + c.phase) * c.radius; let y = sin(angle * c.speed * 1.5 + c.phase) * c.radius; // Color gradient based on position let r = map(x, -width/2, width/2, 255, 0); let g = map(y, -height/2, height/2, 0, 255); let b = map(c.radius, 20, 20 + numCircles * 15, 255, 100); fill(r, g, b, 180); ellipse(x, y, 30, 30); } angle += 0.02; }

Wikiprompt, 무료 프롬프트 백과사전에서

Ethan Mollick

2024년 4월 24일

let circles = []; let numCircles = 20; let angle = 0; function setup() { createCanvas(800, 800); noStroke(); for (let i = 0; i < numCircles; i++) { circles.push({ x: width / 2, y: height / 2, radius: 20 + i * 15, speed: 0.02 + i * 0.005, phase: i * 0.3 }); } } function draw() { background(0); translate(width / 2, height / 2); for (let i = 0; i < circles.length; i++) { let c = circles[i]; let x = cos(angle * c.speed + c.phase) * c.radius; let y = sin(angle * c.speed * 1.5 + c.phase) * c.radius; // Color gradient based on position let r = map(x, -width/2, width/2, 255, 0); let g = map(y, -height/2, height/2, 0, 255); let b = map(c.radius, 20, 20 + numCircles * 15, 255, 100); fill(r, g, b, 180); ellipse(x, y, 30, 30); } angle += 0.02; } p5js를 사용하여 새로운 착시 현상을 설계하도록 AI에 요청하는 프롬프트로, 지각에 대한 지식을 활용하고 그 결과를 설명하는 내용입니다.

프롬프트 내용저장

🌐
let gridSize = 10; let cellSize = 80; let offset = 0; function setup() { createCanvas(800, 800); noLoop(); } function draw() { background(255); stroke(0); strokeWeight(8/wp); for (let i = 0; i < gridSize; i++) { for (let j = 0; j < gridSize; j++) { let x = i * cellSize + cellSize / 2; let y = j * cellSize + cellSize / 2; let d = dist(x, y, width / 2, height / 2); let r = map(d, 0, width / 1.5, 20, 5); let angle = atan2(height / 2 - y, width / 2 - x) + offset; push(); translate(x, y); rotate(angle); noFill(); ellipse(0, 0, r * 2, r * 2); // Draw a smaller offset circle inside to create wave interference ellipse(r * 0.3, 0, r * 0.8, r * 0.8); pop(); } } } ``` **Explanation in Korean (what the illusion is and how it works):** 이 착시는 **정지된 이미지 안에서 움직임이 느껴지는 ‘주변부 운동 착시’** 입니다. 화면 중심에서 멀어질수록 원의 크기가 작아지고, 각 원은 중앙을 향한 방향으로 회전된 상태로 그려집니다. 작은 내접원이 큰 원의 내부에 비대칭적으로 배치되어 있어, 두 원의 간격이 일정하지 않습니다. 인간의 시각 시스템은 이 불규칙한 간격을 ‘회전하는 물체의 연속적인 프레임’으로 해석하려 하기 때문에, 실제로는 정지해 있음에도 불구하고 은은하게 도는 느낌을 받습니다. 특히 망막 주변부(시야 가장자리)에서 이 효과가 강하게 나타나는데, 이는 우리 뇌가 주변 시야에서 움직임 단서를 과장 해석하는 특성 때문입니다. 새로운 점은 단순한 나선형이 아닌, 중심에서 멀어질수록 원의 크기가 감소하는 동시에 회전각이 일정하게 유지되는 구조로, 이로 인해 ‘중심에서 밖으로 퍼져 나가는 회전 파동’이라는 독특한 착시를 만들어냅니다. 이는 기존의 회전 스프링 착시나 확장된 점 착시와 달리, 크기 스케일과 방향 정보를 동시에 변조하여 뇌의 운동 적응을 유도합니다.

전체 프롬프트를 보려면 로그인하세요

Continue with:

By logging in, you agree to our Terms of Use and Privacy Policy

사용법

이 프롬프트는 creative와 함께 사용하도록 설계되었습니다. 위의 프롬프트 내용을 복사하여 원하는 AI 도구에 붙여넣으세요.

최상의 결과를 얻으려면 자리 표시자(대괄호 또는 대문자로 표시)를 특정 요구 사항으로 사용자 지정할 수 있습니다.

참고 자료

분류:creative| twitter| p5js| optical-illusion

토론