Mandlebrot은 내가 제작 한 그림이 예쁘다고 생각하기 때문에 Mandlebrot을 사용하여 엉망으로 만들고 있습니다. 나는 내가 할 수있는 것을보기 위해 자바 스크립트에서 그림 그리기의 문제를 해결하려고 노력할 것 같았다. 나는 즉, 두 알고리즘을 바라 보았다 : Julia Set in Javascript
http://library.thinkquest.org/26242/full/progs/a2.html
내가이로 번역 어떤 : 기본적으로 하나 개의 색상 상자를 그립니다drawGraph: function(canvas,resolution,iterations,colors,coefficent){
var context = canvas.getContext('2d');
for(var m = 0; m < resolution.x; m++){
for(var n = 0; n < resolution.y; n++){
var x = m,
x2 = x*x,
y = n,
y2 = y*y;
var i;
for(i = 1; i < iterations; i++){
if(x2 + y2 > 4) break;
var new_x = x2 - y2 + coefficent.a;
var new_y = 2*x*y + coefficent.b;
x = new_x;
y = new_y;
}
var color = i % colors;
DrawUtils.drawPoint(context,m,n,color);
}
}
}
합니다.
http://en.wikipedia.org/wiki/Mandelbrot_set#Escape_time_algorithm
나는이로 번역 어떤 : 블랙 박스를 생산
drawGraph: function(canvas,resolution,iterations,colors,coefficent){
var context = canvas.getContext('2d');
for(var m = 0; m < resolution.x; m++){
for(var n = 0; n < resolution.y; n++){
var x = 0,
y = 0,
x0 = ((m/resolution.x) * 3.5) - 2.5,
y0 = ((n/resolution.y) * 2) - 1;
var i = 0;
while(x*x + y*y < 4 && i < iterations){
var x_temp = x*x - y*y + x0;
y = 2*x*y + y0;
x = x_temp;
i++;
}
var color = 0;
if(x*x + y*y >= 4){
color = i % colors;
}
DrawUtils.drawPoint(context,m,n,color);
}
}
}
그럼 나는이 일을 시도했다. 스케일링 된 x0와 y0은 픽셀의 요소이지만, 알고리즘 이후에는 계수 c = x0 + iy0라고 말하기 때문에 알고리즘 종류의 문구는 혼란 스럽습니다. 그렇다면 함수에 미리 지정된 계수를 전달하지 않는다는 의미입니까?
대부분의 테스트에서 필자는 0.25 + 0i 계수를 사용했지만 똑같은 결과를 산출 한 다른 테스트를 시도했습니다.
내가 뭘 잘못하고 있니?
내 Juila 세트가 작동하는 거룩한 허튼 소리! 나는 x와 y를 당신이 말한 범위로 줄 였고, 깨기 전에 각 반복마다 x * x와 y * y를 재설정해야했다. 색상을 자동으로 생성하는 좋은 방법을 찾아야 만합니다. 색상 값을 하드 코딩하면 mod가 작동하는 것처럼 보입니다. – kand
그래서 저는 wikipedia 페이지에있는 c의 값 중 일부를 시도했습니다 : http://en.wikipedia.org/wiki/Julia_set#Quadratic_polynomials 그러나 그들은 모양의 "외부"에서 올바른 모양을 갖게되었습니다. 도형의 "안쪽"은 모두 이상한 선으로 채워집니다. 예를 들면 다음과 같습니다. http://imgur.com/ynrCI – kand
실제로 색칠 기법에 문제가 있습니다. 색상을 생성하는 더 좋은 방법을 찾아야합니다. – kand