matlab 雪花koch 这个程序哪儿错了、、?function koch(p,q,n)if (n==0)plot([p(1);q(1)],[p(2);q(2)]);hold on;elsec = q-p;c = [-c(2);c(1)];c = (p+q)/2+c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 ca = (2*p+q)/3; % 求出
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 03:18:13
![matlab 雪花koch 这个程序哪儿错了、、?function koch(p,q,n)if (n==0)plot([p(1);q(1)],[p(2);q(2)]);hold on;elsec = q-p;c = [-c(2);c(1)];c = (p+q)/2+c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 ca = (2*p+q)/3; % 求出](/uploads/image/z/14489059-67-9.jpg?t=matlab+%E9%9B%AA%E8%8A%B1koch+%E8%BF%99%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%93%AA%E5%84%BF%E9%94%99%E4%BA%86%E3%80%81%E3%80%81%3Ffunction+koch%28p%2Cq%2Cn%29if+%28n%3D%3D0%29plot%28%5Bp%281%29%3Bq%281%29%5D%2C%5Bp%282%29%3Bq%282%29%5D%29%3Bhold+on%3Belsec+%3D+q-p%3Bc+%3D+%5B-c%282%29%3Bc%281%29%5D%3Bc+%3D+%28p%2Bq%29%2F2%2Bc%2Fsqrt%2812%29%3B+%25+%E6%B1%82%E5%87%BA%E3%80%8C%E5%90%91%E5%B7%A6%E4%BE%A7%E7%BF%98%E8%B5%B7+1%2F3%E3%80%8D%E7%9A%84%E9%A1%B6%E7%82%B9%E5%BA%A7%E6%A0%87%E5%90%91%E9%87%8F+ca+%3D+%282%2Ap%2Bq%29%2F3%3B+%25+%E6%B1%82%E5%87%BA)
matlab 雪花koch 这个程序哪儿错了、、?function koch(p,q,n)if (n==0)plot([p(1);q(1)],[p(2);q(2)]);hold on;elsec = q-p;c = [-c(2);c(1)];c = (p+q)/2+c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 ca = (2*p+q)/3; % 求出
matlab 雪花koch 这个程序哪儿错了、、?
function koch(p,q,n)
if (n==0)
plot([p(1);q(1)],[p(2);q(2)]);
hold on;
else
c = q-p;
c = [-c(2);c(1)];
c = (p+q)/2+c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 c
a = (2*p+q)/3; % 求出从 p 到 q 的 1/3 处端点座标向量 a
b = (p+2*q)/3; % 求出从 p 到 q 的 2/3 处端点座标向量 b
koch(p,a,n-1); % 对 pa 线段做下一回合
koch(a,c,n-1); % 对 ac 线段做下一回合
koch(c,b,n-1); % 对 cb 线段做下一回合
koch(b,q,n-1); % 对 bq 线段做下一回合
end
我算着没错啊、、
matlab 雪花koch 这个程序哪儿错了、、?function koch(p,q,n)if (n==0)plot([p(1);q(1)],[p(2);q(2)]);hold on;elsec = q-p;c = [-c(2);c(1)];c = (p+q)/2+c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 ca = (2*p+q)/3; % 求出
能画出来啊:)
如果觉得样子不对,可能是因为xy比例的原因,可以axis equal解决
如果是报错了,请检查输入格式
如果很久都没跑出来,n就不要超过5了