QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1395|回复: 4
打印 上一主题 下一主题

MATLAB画二维树

[复制链接]
字体大小: 正常 放大
chenjiahe        

2

主题

12

听众

94

积分

升级  93.68%

  • TA的每日心情
    开心
    2015-5-1 16:29
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    国际赛参赛者

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2015-1-14 15:30 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    具体的要求跟出来的结果如两张图所示,之前查过了好像跟元胞数组有关,但是我自己没能理解,希望诸位大神帮帮忙。

    QQ图片20140326203443.jpg (148.8 KB, 下载次数: 187)

    出来的效果

    出来的效果

    QQ图片20140326203458.jpg (179.85 KB, 下载次数: 183)

    要求

    要求

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    QYY1994        

    40

    主题

    17

    听众

    1233

    积分

    升级  23.3%

  • TA的每日心情
    奋斗
    2015-4-4 20:23
  • 签到天数: 126 天

    [LV.7]常住居民III

    function tree(n,a,b)
    % tree(13,pi/3,pi/5),n为分形树迭代次数 %a,b为分枝与竖直方向夹角
    %x1,y1,x2,y2为初始线段两端点坐标,nn为迭代次数
    x1=0;y1=0;
    x2=0;y2=1;
    plot([x1,x2],[y1,y2])
    hold on
    [X,Y]=tree1(x1,y1,x2,y2,a,b);
    hold on
    W=tree2(X,Y);
    w1=W(:,1:4);
    w2=W(:,5:8);
    % w为2^k*4维矩阵,存储第k次迭代产生的分枝两端点的坐标,
    % w的第i(i=1,2,…,2^k)行数字对应第i个分枝两端点的坐标
    w=[w1;w2];
    for k=1:n
        for i=1:2^k
            [X,Y]=tree1(w(i,1),w(i,2),w(i,3),w(i,4),a,b);
            W(i,:)=tree2(X,Y);
        end
        w1=W(:,1:4);
        w2=W(:,5:8);
        w=[w1;w2];
    end
    %由每个分枝两端点坐标(x1,y1),(x2,y2)产生两新点的坐标(x3,y3),(x4,y4),画两分枝图形,并把
    %(x2,y2)连同新点横、纵坐标分别存储在数组X,Y中
    function [X,Y]=tree1(x1,y1,x2,y2,a,b)
    L=sqrt((x2-x1)^2+(y2-y1)^2);
    if (x2-x1)==0
        a=pi/2;
    else if(x2-x1)<0
            a=pi+atan((y2-y1)/(x2-x1));
        else
            a=atan((y2-y1)/(x2-x1));
        end
    end
    x3=x2+L*2/3*cos(a+b);
    y3=y2+L*2/3*sin(a+b);
    x4=x2+L*1/2*cos(a-b);
    y4=y2+L*1/2*sin(a-b);
    a=[x3,x2,x4];
    b=[y3,y2,y4];
    plot(a,b)
    axis equal
    hold on
    X=[x2,x3,x4];
    Y=[y2,y3,y4];
    %把由函数tree1生成的X,Y顺次划分为两组,分别对应两分枝两个端点的坐标,并存储在一维%数组w中
    function w=tree2(X,Y)
    a1=X(1);b1=Y(1);
    a2=X(2);b2=Y(2);
    a3=X(1);b3=Y(1);
    a4=X(3);b4=Y(3);
    w=[a1,b1,a2,b2,a3,b3,a4,b4];

    你试一下这个程序,长度已经能控制了,不过角度控制似乎存在问题,如果你能调试出来,欢迎与我交流!


    回复

    使用道具 举报

    林灵锋        

    0

    主题

    14

    听众

    48

    积分

    升级  45.26%

  • TA的每日心情

    2015-1-27 22:11
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    自我介绍
    福州大学数学物理综合班学生一枚。

    社区QQ达人

    群组2015SAS数据分析大赛

    回复

    使用道具 举报

    小金虫        

    10

    主题

    15

    听众

    327

    积分

    升级  9%

  • TA的每日心情
    开心
    2016-8-1 18:34
  • 签到天数: 182 天

    [LV.7]常住居民III

    自我介绍
    只有耐得住寂寞,才能守得住繁华!

    群组2017美赛备战交流群组

    群组国赛讨论

    回复

    使用道具 举报

    0

    主题

    12

    听众

    61

    积分

    升级  58.95%

  • TA的每日心情
    开心
    2017-1-20 10:49
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    自我介绍

    社区QQ达人

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-22 15:03 , Processed in 0.667390 second(s), 77 queries .

    回顶部