- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个处理(如语言中的)草图,它由 Turtle 逻辑驱动(请参阅 https://en.wikipedia.org/wiki/Turtle_graphics )。这意味着我从当前坐标到提供的坐标绘制一条线。然后,所提供的坐标将成为新的当前坐标。我想近似一个圆,并使用三角函数编写了一段简单的代码。代码如下:
void drawCircle(int radius){
// The circle center is radius amount to the left of the current xpos
int steps = 16;
double step = TWO_PI /steps;
for(double theta = step; theta <= TWO_PI; theta += step){
float deltaX = cos((float)theta) - cos((float)(theta - step));
float deltaY = sin((float)theta) - sin((float)(theta - step));
moveXY(deltaX*radius, deltaY*radius);
}
}
程序逻辑很简单。它将使用变量 theta
循环遍历圆中的所有弧度。步骤的数量将指示每个theta
block 有多大。然后,它将计算由 theta 控制的圆中特定点的 x、y 值。然后,它将扣除上一个周期的 x,y 值(因此是theta-step
),以获得为达到所需的 x,y 位置而必须从该位置移动的量。它最终会将这些增量值提供给 moveXY 函数,该函数从当前点到提供的值绘制一条线,并使它们成为新的当前位置。
当使用有限数量的步骤时,该程序似乎运行得很好。然而,当步数增加时,圆圈变得越来越像斐波那契螺旋。我的猜测是,这是由于 float 以及正弦和余弦计算不精确,并且每次迭代都会累加。
我是不是理解错了什么?我希望最终将此代码移植到 Javascript,因此我正在设计中寻找解决方案。使用 BigDecimal 可能不起作用,特别是因为它不包含自己的余弦和正弦函数。我提供了一些图片来详细说明该问题。非常感谢任何帮助!
步数 16:
步数 32:
步数 64:
步数 128:
最佳答案
浮点和正弦/余弦应该足够精确。问题是:你在飞机上的位置有多精确?如果该位置以像素为单位测量,则每个浮点值在每个步骤后都会四舍五入为整数。精度损失就会增加。
关于java - 在海龟程序中画一个圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39636917/
嗨,我正在为类(class)做作业,但最后一部分遇到了一些麻烦。这部分我正在编写代码来绘制一些阶段,并放入一个具有图片背景和一些自定义功能的世界中。我认为阶段的代码是问题所在。你们能帮我检查一下吗?
假设我们有一个文件my_file.txt内容: foo bar 和另一个文件my_other_file.txt包含: baz 我想使用 turtle 读取这两个文件的内容这样我就得到了 Shell 将
我正在尝试一项练习,要求我在Python中使用turtle绘制字母表中的字母。到目前为止,我认为我对如何使用前/后距离和旋转角度绘制直线、曲线和形状有了很好的理解。 我正在尝试绘制字母“B”,这是我的
我想将 Python Turtle 模块 (tkinter) Canvas 转换为位图。我按照“How to convert a Python tkinter canvas postscript fi
我是一名优秀的程序员,十分优秀!