turtle画曲线_心形曲线图

turtle画曲线_心形曲线图这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。


Jetbrains全系列IDE稳定放心使用

运行结果

心形曲线 爱心

心形曲线 爱心
心形曲线 爱心

心形曲线函数

x 2 + ( y − x 2 3 ) 2 = 1 x^2+(y-\sqrt[3]{x^2})^2=1 x2+(y−3x2
​
)2=
1

将原函数变形:
y = x 2 3 ± 1 − x 2 y=\sqrt[3]{x^2}\pm\sqrt{1-x^2} y=3x2
​
±
1−x2
​

实现思路:

显然,x的值域为:[-1,1]
在值域内取适当个x的值,并求出相应y的值,用描点法绘制曲线,填充颜色,即可得到一个心形图。
在此基础上进行扩展,对心形图的位置和大小设定随机参数,即可获得随机的多个心形图。

代码

import random
import turtle
# import numpy as np

pen = turtle.Pen()
# pen.speed(10)
pen.ht()

'''pen.begin_fill() for i in range(360): i /= 180 / math.pi length = A * (1 - math.cos(i)) x, y = length * math.cos(i), length * math.sin(i) pen.goto(x, y) pen.end_fill()'''

# for i in range(360):
# i /= math.pi
# length = A * (1 - math.sin(i))
# x, y = length * math.cos(i), length * math.sin(i)

random.seed(100)
times = 100
# X = sorted((1 - np.random.random(times)))
X = [_ / times for _ in range(times)]
d = [[x ** (2 / 3), (1 - x ** 2) ** 0.5] for x in X]
pos = [None] * times * 4
for i in range(len(X)):
    pos[i + times * 0] = [X[i], d[i][0] + d[i][1]]
    pos[i + times * 1] = [X[-i - 1], d[-i - 1][0] - d[-i - 1][1]]
    pos[i + times * 2] = [-X[i], d[i][0] - d[i][1]]
    pos[i + times * 3] = [-X[-i - 1], d[-i - 1][0] + d[-i - 1][1]]
print('begin draw')


def draw(A=100, fillcolor='red', scale=1):
    turtle.tracer(False)
    start_x, start_y = pen.pos()
    pen.seth(90)
    pen.pu()
    pen.goto(start_x, pos[0][1] * A + start_y)
    pen.fillcolor(fillcolor)
    pen.pd()
    pen.begin_fill()
    for x, y in pos:
        pen.goto(x * scale * A + start_x, y * A + start_y)
    pen.end_fill()
    turtle.update()


def draw_more():
    for i in range(100):
        pen.pu()
        pen.goto(random.randint(-900, 900), random.randint(-500, 500))
        # pen.pd()
        draw(A=random.randint(10, 100), fillcolor=random_color(), scale=1.2)


def hex_(num):
    return f'{hex(num)[2:]:0>2}'


def random_color():
    r, g, b = random.randint(200, 255), random.randint(0, 20), random.randint(0, 20)
    return f'#{hex_(r)}{hex_(g)}{hex_(b)}'


turtle.Screen().delay(False)
pen.pencolor('snow')
for i in range(100):
    draw_more()
    pen.clear()
turtle.done()

注意描点的顺序,要保证连贯性,否则无法正常闭合,也就无法正常填充颜色。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184226.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Pycharm多行编辑[通俗易懂]

    Pycharm多行编辑[通俗易懂]alt+shift+鼠标左键

    2022年8月27日
  • 国内十大正规现货交易平台排名(2022最新榜单)「建议收藏」

    国内十大正规现货交易平台排名(2022最新榜单)「建议收藏」如今,越来越多的人投资于黄金,因为这些投资项目更适合当今年轻人的需求,但为了通过黄金投资获得理想的回报,我们首先需要选择一个可靠的国内黄金交易平台,由于市场上的各种平台都很复杂,有些平台可能不是很正规。如果你选择这样的一个平台投资,收获可能会并不理想,但选择好的平台事实上并不像预期的那么困难。香港作为全球的金融中心之一,其金银业贸易场的黄金投资业务已经很成熟,投资者的利益能够得到有效的保障。鉴于很多新手对国内现货黄金平台不太了解,下面小编为大家介绍“国内十大正规现货交易平台排名(2022最新

    2022年6月29日
  • Ubuntu安装QT Creater和配置[通俗易懂]

    Ubuntu安装QT Creater和配置[通俗易懂]系统环境:Ubuntu16.04软件版本:Qt5.15Qt下载网址:http://download.qt.io/official_releases/qt/方式1,安装版XXXX.run文件进入下载页面,选择版本我下载的是:http://download.qt.io/official_releases/qt/5.9/5.9.2/qt-opensource-linux-x64-5.9.2.run1.把下载好的文件,放在一个目录下:然后在该目录下打开终端赋权tyb@amax:~.

    2022年10月15日
  • ajax怎么整理,ajax请求的五个步骤是什么?五个步骤整理

    ajax怎么整理,ajax请求的五个步骤是什么?五个步骤整理每掌握一个技术,自然要了解该技术是什么?该技术的塬理又是什么?这样我们才能更深刻的掌握改技术。今天所描述的是ajax请求的五个步骤,希望能让大家对ajax有个更深入的记忆网图在脑海中。首先,我们来回顾下ajax是什么?Ajax=异步JavaScript和XML。Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新…

    2022年5月16日
  • 如何搭建传奇服务器_架设传奇需要什么样的服务器

    如何搭建传奇服务器_架设传奇需要什么样的服务器分享一篇技术文章,传奇私服架设教程。教程讲的很详细,就是一个菜鸟都能学会如何架设传奇私服。在管理工具->服务中停止ssdpdiscoveryservic服务一、准备软件DBCommander2000Pro和传奇服务端(什么版本都行)。二、简易安装说明:1、安装设置DBCommander2000Pro1)安装DBCommander2000Pro2)打开控制面板3)打开BDEA…

    2022年10月6日
  • GFS – The Google File System

    GFS – The Google File SystemTheGoogleFileSystemhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.789&rep=rep1&type=pdfhttp://www.dbthink.com/?p=501,中文翻译 Google牛人云集的地方,但在设计系统时,却非常务实,没有采用什么复杂和时髦…

    2022年6月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号