Polar Rose 2D offset
Polar Rose 2D offset
我在绘制一个偏移量为C的极玫瑰时遇到了一些困难
r(θ)=cos(k*θ)+C。我正在画这朵极地玫瑰:
http://en.wikipedia.org/wiki/Polar_coordinate_system#/media/File:Cartesian_to_polar.gif
极性方程可以是:
r(θ)=cos(k*θ)
或
r(θ)=sin(k*theta)
我想画的极玫瑰的方程式是:
r(θ)=2+sin(6*θ)
好的,参数方程是:
x=C+sin(k*theta)*cos(theta)
y=C+sin
在我的画布(绘图区域)中,我的原点不在屏幕的中心,所以我需要将玫瑰翻译成它。好吧,没什么大不了的。另一点是,我需要缩放玫瑰以使其可见,否则它会太小,但仍然没有问题,这解释了:100*。这是我的代码,它在C++上:
for ( float t = 0; t < PI_2; t+= 0.01 )
{
r = Origin.get_x() + 100*(2+(sin(6*t) * cos(t)));
h = Origin.get_y() + 100*(2+(sin(6*t) * sin(t)));
point(r,h);
}
我知道我做错了,因为当我加上+2(应该是C常数)时,它并没有按我想要的方式工作,它只是平移了更多,画了一个没有偏移的极玫瑰。如何防止"额外翻译"并正确绘制?
x = r cos(theta)
,y = r sin(theta)
,因此参数方程应为x(theta) = C * cos(theta) + sin(k*theta) * cos(theta)
和y(theta) = C * sin(theta) + sin(k*theta) * sin(theta)
。您只是忘记了将C
分别乘以cos(theta)
和sin(theta)
。
相关文章:
- 2D数组来自文本输入,中间有空格
- 将值指定给向量(2D)的向量中的某个位置
- 如何使用用户输入在C++中正确填充2D数组
- 如何在C++中检查2D数组中负值的输入验证
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 在 2D 向量中使用第三个 [ ] 有什么意义?
- 四边形的 2D 旋转
- 打印第二列时的2d字符矢量打印空间
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在C++函数中声明静态 2D 数组?
- 我是 C++ 的初学者,我想知道如何在 2D 矢量中获取重复值
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- opengl glBegin(GL_LINES) 和 glBegin(GL_POINT) 在 2D 中不可视化点矢量
- 在C++中迭代 2D 容器的最干净方法
- 如何引用 2D 指针?
- 如何在 C++ 中使用它的构造函数初始化 unique_ptrs 的 2D 向量?
- C++动态安全 2D 交错阵列
- 如何在C++或OpenCV子矩阵中的2D子向量上使用OpenACC?
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- Polar Rose 2D offset