【发布时间】:2018-07-01 12:05:47
【问题描述】:
我已经编写了以下代码,但我似乎遗漏了一些东西,我不确定它是什么:
axis off
hold on
for i = 1:10000
r = [rand() rand()];
rp = [(1 - sqrt(r(1))) * -1 + (sqrt(r(1)) * (1 - r(2))) * 0 + (sqrt(r(1)) * r(2)) * 1,
(1 - sqrt(r(1))) * 0 + (sqrt(r(1)) * (1 - r(2))) * sqrt(3) + (sqrt(r(1)) * r(2)) * 0];
v1 = [-1 0 1];
v2 = [0 sqrt(3) 0];
num = randi([1 3], 1);
rv = [v1(num) v2(num)];
mid_x = (rp(1) + rv(1))/2;
mid_y = (rp(2) + rv(2))/2;
plot(mid_x, mid_y, '.r', 'MarkerSize', 0.000001)
end
这就是我得到的:
三角形
有人知道怎么解决吗?
【问题讨论】:
-
怎么了?你期待什么?你必须在这里明确。我们真的不知道出了什么问题,因为您发布的数字正是代码所描述的。因此,您编写的代码与您想要编写的代码不同,但我们无法查看您的想法并猜测您想要编写的代码。
-
如果您想要更多层的谢尔宾斯基三角形,那么您需要添加另一个循环,在循环内将当前点缩放
sqrt(3)并添加另一个随机rv。您重复此循环的次数越多,您获得的分形级别就越多。