鱼C论坛

 找回密码
 立即注册
查看: 1092|回复: 5

[已解决]各位大佬求解答,代码如图!!

[复制链接]
发表于 2020-3-29 22:13:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Tacker.Lee 于 2020-3-30 00:48 编辑
import turtle

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
        '''绘制'''
        turtle.forward(changdu)
        turtle.right(20)
        fenxingshu(changdu-15)

        '''绘制左侧树枝'''
        turtle.left(40)
        fenxingshu(changdu-15)

        '''向回转20,并换一条线'''
        turtle.right(20)
        turtle.color('brown')
        turtle.backward(changdu)

def main() :
    #主函数

    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()
各位大佬你们好!


代码如图2  

我想实现最小的树枝,那段变成绿色的,感觉像有叶子一样

我的逻辑思维真心跟不上,求各位大佬解答

小弟 先谢谢了
最佳答案
2020-3-30 01:46:11
import turtle,random

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
        '''绘制'''
        if changdu<= 20:
            turtle.color('green')
            turtle.pensize(random.randint(0,3))
        else:
            turtle.color('brown')
            turtle.pensize(3)
        turtle.forward(changdu)
        turtle.right(20)
        fenxingshu(changdu-15)

        '''绘制左侧树枝'''

        turtle.left(40)
        fenxingshu(changdu-15)


        '''向回转20,并换一条线'''
        turtle.right(20)
        turtle.penup()
        turtle.backward(changdu)
        turtle.pendown()

def main() :
    #主函数
    turtle.screensize(800, 600, "black")
    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    turtle.pensize(5)
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()

这是现在效果

这是现在效果

这是代码

这是代码

这是想要的效果

这是想要的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-29 23:01:36 | 显示全部楼层
考我们输入代码吗?

如我这样的小白,图片调试不了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 00:49:26 | 显示全部楼层
xiangjianshinan 发表于 2020-3-29 23:01
考我们输入代码吗?

如我这样的小白,图片调试不了。

其实,就是简单地函数调用!嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 01:46:11 | 显示全部楼层    本楼为最佳答案   
import turtle,random

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
        '''绘制'''
        if changdu<= 20:
            turtle.color('green')
            turtle.pensize(random.randint(0,3))
        else:
            turtle.color('brown')
            turtle.pensize(3)
        turtle.forward(changdu)
        turtle.right(20)
        fenxingshu(changdu-15)

        '''绘制左侧树枝'''

        turtle.left(40)
        fenxingshu(changdu-15)


        '''向回转20,并换一条线'''
        turtle.right(20)
        turtle.penup()
        turtle.backward(changdu)
        turtle.pendown()

def main() :
    #主函数
    turtle.screensize(800, 600, "black")
    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    turtle.pensize(5)
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 01:46:44 | 显示全部楼层
若是可行,请采纳!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 02:06:13 | 显示全部楼层
import turtle,random

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
        '''绘制'''
        temp = changdu
        if changdu<= 20:
            turtle.color('green')
            turtle.pensize(random.randint(0,3)) #树尖的大小不一样。
            temp = changdu+random.randint(0,40)  #树尖的长度不一样。
            if random.randint(0,10)==1:
                turtle.color('brown') #偶尔有几茬不是绿色的树尖。
        else:
            turtle.color('brown')
            turtle.pensize(3)
        turtle.forward(temp)
        turtle.right(20)
        fenxingshu(changdu-15)

        '''绘制左侧树枝'''

        turtle.left(40)
        fenxingshu(changdu-15)


        '''向回转20,并换一条线'''
        turtle.right(20)
        turtle.penup()
        turtle.backward(temp)
        turtle.pendown()

def main() :
    #主函数
    turtle.screensize(800, 600, "black")
    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    turtle.pensize(5)
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 15:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表