用乌龟画一个超椭圆

2024-02-07

显然,任何可以通过其他方式绘制的形状都可以由海龟绘制。圆形和正方形很容易

rt 1 fd .0

and

if ticks mod 100 = 0 [rt 90]
fd 1

超级椭圆没那么多。 (规则的省略号也不是微不足道的。)维基百科关于超椭圆的文章 https://en.wikipedia.org/wiki/Superellipse如果您需要重新了解该主题。

任何意见都会受到赞赏。

使用下垂海龟有没有办法制作一个因海龟运动而出现的超级椭圆?


我有 1/4,我想你可以把另外三个拼凑起来。其他 n 值这里不再测试。 (使用 Wiki 符号,加上 phi 作为整个物体旋转的角度。) 我知道,落笔的重置刻度的放置很草率。

to go2
  clear-all
  reset-ticks
  let a 6
  let b 5
  let phi 0
  let n 3.5
  create-turtles 1 [
    let iNdx 1
    repeat 90 [
      show iNdx
      show cos(iNdx)
      if cos(iNdx) > 0 and sin(iNdx) > 0 [
        let tx (a * (cos(iNdx) ^ (2 / n)))
        let ty (b * (sin(iNdx) ^ (2 / n)))
        let tx2 tx * cos(phi) - ty * sin(phi)
        let ty2 tx * sin(phi) + ty * cos(phi)
        setxy tx2 ty2
        ]
      pen-down
      set iNdx iNdx + 1
      ]
    ]
  end

椭圆看起来更简单,但你来判断

to go
  clear-all
  reset-ticks
  let a 6
  let b 5
  let phi 45
  create-turtles 1 [

    let iNdx 1
    repeat 360 [
      let tx (a * cos(iNdx))
      let ty (b * sin(iNdx))
      let tx2 tx * cos(phi) - ty * sin(phi)
      let ty2 tx * sin(phi) + ty * cos(phi)
      setxy tx2 ty2
      pen-down
      set iNdx iNdx + 1
      ]
    ]
  end

作为一个程序的概括和简化。

to Super-ellipse [x y a b  m n]
 create-turtles 1 [
 let iNdx 1
 repeat 360 [
 setxy  (x + (abs cos iNdx)^(2 / m) * a * (sgn cos iNdx)) 
        (y + (abs sin iNdx)^(2 / n) * b * (sgn sin iNdx))
 pendown
set iNdx iNdx + 1]
]
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用乌龟画一个超椭圆 的相关文章

  • Python:Ramer-Douglas-Peucker(RDP)算法,用点数代替 epsilon

    我想修改以下 python 脚本RDP算法 https en wikipedia org wiki Ramer E2 80 93Douglas E2 80 93Peucker algorithm目的是不使用 epsilon 而是选择我想在决
  • 当我在平面上嵌入平面图时,如何找到包含预定义点的面

    我有一个嵌入在平面上的平面图 平面图 并且想要搜索它的面 该图不是连接的 而是由多个连接的图组成 这些图不能单独寻址 例如 子图可以包含在另一个图的表面中 我想找到包含某个二维点的多边形 面 多边形由图形的面形成 由于面孔数量相当大 我想避
  • 用 TextViews 解决椭圆问题

    哇SDK 哇 因此 我尝试在 TextView 单行 运行到屏幕外之前在其末尾添加一个椭圆 我读到省略号已损坏 为 2 1 开发 经过Google搜索 每个人似乎都建议将inputType设置为text 将maxLines设置为1 你会得到
  • Netlogo中有NOOP吗?

    我正在寻找一种在 netlogo 中什么也不做的方法 在其他编程语言中 这称为无操作方法 有没有办法可以在 netlogo 中做到这一点 您可以非常轻松地编写自己的无操作过程 to no op end usage to go no op e
  • 计算 3D 网格的体积

    我厌倦了计算 3D 物体 立方体 圆柱体 的体积 有人可以帮忙吗 有这个问题吗 问题是 如何计算物体的体积 基于三角形的坐标 我的班级做得不好 有人能帮我吗 提高班级水平 thanks public class Algorithm priv
  • 在matlab中计算闭合曲线(或多边形)的曲率

    考虑以下几点 x 1 34 0 92 0 68 0 25 0 06 0 34 0 49 0 72 0 79 0 94 1 35 0 35 0 54 0 68 0 84 1 20 1 23 1 32 1 34 y 0 30 0 43 0 90
  • 路径未到达我的 A* 算法中的结束节点

    继从如何在大空间范围内加速最小成本路径模型 https stackoverflow com questions 23202199 how to speed up least cost path model at large spatial
  • 沿多边形边界生成等距点,但 CW/CCW

    假设我有一个多边形的顶点 它们都是逆时针方向的 我希望生成n沿该多边形边界的等距点 有谁知道任何现有的包可以做到这一点 如果没有 可以使用一种算法吗 我正在用Python工作 例如 如果所讨论的多边形是矩形 我想要的是 在此输入图像描述 h
  • 如何找到覆盖R中一组点的给定部分的最小椭圆?

    我在想 有没有一些功能 聪明的方法来找到smallest椭圆覆盖 R 中一组 2d 点的给定部分 With smallest我的意思是面积最小的椭圆 澄清 如果点数很大 我可以接受近似正确的解决方案 因为我猜精确的解决方案必须尝试点子集的所
  • 在其间至少有 X 间隙长度的区域中生成点

    我试图想出一种在给定区域 在我的例子中是一个正方形 中生成 X 个随机点的方法 造成这个问题的一件事是每个点必须距离所有其他点至少 Y 个单位 首先想到的是 在 c 中 检查新点与所有现有点之间的距离 while points Count
  • 从 NetLogo 中的有界正态分布中选择值

    我正在尝试让 Ne tLogo 按照 stackoverflow 中上一个问题中的建议从有界随机正态分布中绘制值 NetLogo 如何确保变量保持在定义的范围内 https stackoverflow com questions 20230
  • 如何检索两个 3D 向量之间的角度?

    我是Python新手 我在 3d 空间中有两个向量 我想知道两个向量之间的角度 I tried vec1 x1 y1 z1 vec2 x2 y2 z2 angle np arccos np dot vec1 vec2 np linalg n
  • 如何计算逆运动学[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想知道如何使用逆运动学计算旋转角度 我计划将其用于实时 3D 动画 有人知道一些详细介绍具体解决方案的好文献吗 以下资源调查了逆运动学问题的一些流行
  • 计算非凸多面体的外向法线

    如果多面体的所有节点 可能是非凸的 及其坐标已知 面的点按顺序给出 绕外法线逆时针或顺时针 如何获得每个面的外法向量脸 这是凸多面体的一种方法 计算面法线和缠绕 https stackoverflow com questions 40454
  • 是否有一种仅使用极坐标来查找附近点的算法?

    假设我有一个点向量作为极坐标 假设其中一个点充当探针 我想找到一定距离内的所有其他点 是否有一种算法可以在不将它们转换为笛卡尔形式的情况下执行此操作 您正在寻找极坐标的距离 你可以在这里找到公式link http math ucsd edu
  • 在 Netlogo 中将函数作为参数传递

    在许多其他编程语言中 您可以将一个函数作为参数传递给另一个函数并从该函数内调用它 无论如何 在 Netlogo 中可以做到这一点吗 比如下面这样 x y z are all ints to report f x y z report x y
  • 三次贝塞尔曲线逆 GetPoint 方程:float for Vector <=> Vector for float

    给定结果值和四个点是否可以取回 float t 如果是这样 怎么办 public static Vector3 GetPoint Vector3 p0 Vector3 p1 Vector3 p2 Vector3 p3 float t t M
  • 如何检查一个盒子是否适合另一个盒子(允许任何旋转)

    假设我有两个盒子 每个盒子都是一个长方体 http en wikipedia org wiki Rectangular cuboid aka长方体 我需要编写一个函数来决定盒子是否具有尺寸 一 二 三 可以装入具有尺寸的盒子中 甲 乙 丙
  • 使到 n 个点的集合的欧氏距离之和最小的点

    我有一组点W x1 y1 x2 y2 xn yn 在 2D 平面上 你能找到一种算法 将这些点作为输入并返回一个点 x y 在 2D 平面上 距以下点的距离之和最小W 换句话说 如果 di Euclidean distance x y xi
  • 使用 Voronoi 图查找多边形的中线

    我正在使用概述的基于 Voronoi 图的方法here https stackoverflow com questions 37820629 centerline of a polygonal blob binary image找到根图像的

随机推荐

  • 带有 Maven 子模块的 gradle

    有什么方法可以使用 maven 子模块构建 gradle 项目吗 我在 gradle 中创建了一个项目 但现在我必须添加模块 该模块使用了 Maven 我不知道如何使用它 有什么好的办法吗 我将非常感谢任何建议 将 Maven 项目转换为
  • XmlSerializer 和 System.Drawing.Color 的最佳解决方案

    System Drawing Color 对象显然不会使用 XmlSerializer 进行序列化 xml 序列化颜色的最佳方法是什么 最简单的方法的核心就是使用它 String HtmlColor System Drawing Color
  • 使用 Core Data 按纬度/经度查找最近的位置

    我有一个 iPhone 应用程序 其中包含一个包含位置列表的核心数据数据库 每个位置都有纬度 经度坐标 如何搜索距我当前位置最近的 10 个地点 我是核心数据新手 所以我的问题实际上是如何进行查找 我知道如何获取当前位置等 我相信我需要使用
  • Python垃圾回收如何使用numpy数组追加和删除?

    我正在尝试调整在计时器上更新的绘图代码 matplotlib 的底层结构 从使用 Python 列表绘制数据到使用 numpy 数组 我希望能够尽可能降低绘图的时间步长 并且由于数据可能会达到数千个点 如果不能的话 我就会开始快速浪费宝贵的
  • Android 媒体播放器上用于搜索栏的线程

    如何创建一个线程 每秒检查歌曲位置并根据歌曲位置移动搜索栏 我使用了打击代码 它只播放两首歌 然后它就从我的应用程序中消失了 public class setp implements MediaPlayer OnPreparedListen
  • Xamarin.Forms - 摇篮 FAB

    我想要摇篮浮动操作按钮 按钮必须是动态的 它将是动画的 并且支架必须适应它 就像从材料 io https material io 它必须与 iOS 和 Android 一样工作 XAML 示例 如果可以的话 也许是自定义渲染器 我知道这个功
  • Nodejs:如何克隆对象

    如果我克隆一个数组 我使用cloneArr arr slice 我想知道如何在nodejs中克隆一个对象 对于不需要压缩每一滴性能的实用程序和类 我经常作弊 只使用 JSON 来执行深度复制 function clone a return
  • 我可以使用 Transporter 将 Flutter iOS 应用上传到 App Store 控制台吗?

    我是通过 Flutter 进入移动开发领域的 所以我所有与原生平台和技术的接触都来自于它 到目前为止 我一直按照文档所述分发我的 Flutter 应用程序 使用 Xcode 打开 build ios archive Runner xcarc
  • HTML 画布 - 绘图在调整大小时消失

    我在 HTML canvas 元素中创建了一个基本形状 效果很好 当我调整画布大小时 会出现问题 画布中的所有绘图都会消失 这是正常行为吗 或者是否有一个功能可以用来阻止这个 解决此问题的一种方法可能是在调整画布大小时再次调用绘图函数 但是
  • 使用扩展音频文件服务 (ExtAudioFileRead) 读取音频

    我正在努力理解核心音频 或者更确切地说 扩展音频文件服务 http developer apple com iphone library documentation MusicAudio Reference ExtendedAudioFil
  • PHP重写父类特征的特征方法

    我使用的是 Laravel 5 1 但这并不是特定于该框架的 它更多的是一个一般的 PHP 问题 有一个指定了特征的父类 namespace Illuminate Foundation Auth use Illuminate Auth Au
  • 删除菜单图标和标题之间的空格

    在下图中 如何删除菜单中图标和项目标题之间的空格 活动 主 抽屉 xml menu menu
  • asyncio 中的“yield from”语法有什么作用以及它与“await”有何不同

    从编写过 asyncio 代码但希望更好地理解内部工作原理的人的角度来看 什么是yield from await这些对于允许异步代码有何用处 有一个高度评价 https stackoverflow com questions 9708902
  • 使用 AtomicUsize::new 时,const fns 是一个不稳定的功能

    这段代码有什么问题 use std sync atomic AtomicUsize static mut counter AtomicUsize AtomicUsize new 0 fn main 我收到此错误 error const fn
  • 在并发环境中追加到文件末尾

    需要采取哪些步骤来确保 满 线always如果同时运行多个以下 示例 程序 则正确附加到文件末尾 usr bin env python import random passwd text open passwd txt a u jsmith
  • 如何在 WPF 中删除 Web 浏览器上的滚动条

    我在我的应用程序中使用 WebBrowser 控件 例如
  • 查找关联程序以使用 Java 打开文件

    我希望使用计算机上安装的关联程序 在本例中使用 MS Word 或 Open Office Writer 从 Java 应用程序打开文件 比如说 word 文档 问题是我想等到这个子进程完成 这可以使用 Process 类中的 waitFo
  • 如何通过修改图像尺寸和角度进行 3d 轮播

    我需要对某些图像集产生圆形轮播效果 我为此使用下面的示例项目 http www codeproject com Articles 146145 Android 3D Carousel http www codeproject com Art
  • 查找 SSRS 2012 中计算字段的中位数

    我有一个开始日期和一个结束日期 并使用以下内容计算其间的工作日 我创建了一个名为 CountWeekDays 的计算字段 它等于 Code getBusinessDaysCount Fields date created Value Fie
  • 用乌龟画一个超椭圆

    显然 任何可以通过其他方式绘制的形状都可以由海龟绘制 圆形和正方形很容易 rt 1 fd 0 and if ticks mod 100 0 rt 90 fd 1 超级椭圆没那么多 规则的省略号也不是微不足道的 维基百科关于超椭圆的文章 ht