有人可以看看這段代碼,並指出爲什麼由此產生的巴恩斯利蕨類植物分形看起來不正確嗎?Javascript:巴恩斯利蕨類分形
function barnsley (ctx) {
ctx.fillStyle = 'green';
ctx.translate(ctx.canvas.width/2,ctx.canvas.height/2);
var self = this;
this.itts = 100000;
this.ittsCount = 0;
this.x = 0;
this.y = 0;
this.main = function() {
for (var i=0;i<itts;i++) {
var rand = Math.random()*100;
if (rand < 1) {
self.one();
} else if (rand < 86) {
self.two();
} else if (rand < 94) {
self.three();
} else {
self.four();
}
}
}
this.one = function() {
var xn = self.x;
var yn = self.y;
var zx = 0;
var zy = 0.16 * yn;
self.drawPoint(zx,zy);
}
this.two = function() {
var xn = self.x;
var yn = self.y;
var zx = 0.85 * xn + 0.4 * yn;
var zy = -0.04 * xn + 0.85 * yn + 1.6;
self.drawPoint(zx,zy);
}
this.three = function() {
var xn = self.x;
var yn = self.y;
var zx = 0.2 * xn - 0.26 * yn;
var zy = 0.23 * xn + 0.22 * yn + 1.6;
self.drawPoint(zx,zy);
}
this.four = function() {
var xn = self.x;
var yn = self.y;
var zx = -0.15 * xn + 0.28 * yn;
var zy = 0.26 * xn + 0.24 * yn + 0.44;
self.drawPoint(zx,zy);
}
this.drawPoint = function (xn,yn) {
self.x = xn;
self.y = yn;
ctx.fillRect(xn*20,-yn*20,1,1);
}
this.main();
}
它有正確的一般形狀,但我必須缺少的東西,我檢查了算法等,但無濟於事。 任何幫助,不勝感激。
雅可做出的jsfiddle?或者什麼是ctx? :| – Ronnie 2013-03-20 23:43:07
@羅尼a'
我不明白爲什麼人們投票結束這不是建設性的,這是一個明確的問題,不保證討論或主觀答案。 – 2013-03-20 23:50:46