我使用左右音频通道创建Lissajous矢量示波器。左边是x,右边是y,两者都不超过1和-1值。这些坐标也以45度角移动,给我以下视图。
所以我做了一个非常简单的
// converting x and y value from (-1 - 1) to (0 - 1)
float x = LeftChannelValue/2 + 0.5
float y = RightChannelValue/2 + 0.5
// multiplying the width and height with X and Y to get a proper square
// width and height have to be the same value
float new_X = x*(width*0.5)
float new_Y = y*(height*0.5)
// doing two dimensional rotating to 45 degrees so it's easier to read
float cosVal = cos(0.25*pi)
float sinVal = sin(0.25*pi)
float finalX = (((new_X*cosVal)-(new_Y *sinVal))) + (width*0.5) //adding to translate back to origin
float finalY = ((new_X*sinVal) + (new_Y *cosVal))
这给了我那张照片的结果。
我如何绘制极坐标图,使其看起来不像一个正方形,看起来像一个圆圈? 我试图获得这种观点,但我对这与左派和右派如何相关完全感到困惑。我使用https://en.wikipedia.org/wiki/Polar_coordinate_system作为参考。
答案 0 :(得分:2)
我想出了我想要的东西。
我试图在极坐标图中绘制这些坐标。我一切都错了。
我最终意识到为了让我转换x,y坐标,我需要自己定义半径和角度应该在x,y图表中表示的内容。在我的例子中,我希望半径是x和y的最大绝对值
唯一的问题是试图弄清楚如何使用x和y值计算角度。
这就是我希望我的圈子工作的方式,
根据这些信息,您可以找出圆圈的其余坐标,直到 180 & - 180 度角。
我必须使用条件(if else语句)来正确地找出给定x和y的正确角度。
然后绘制极坐标图,只需使用cos和sin转换为x,y坐标。
我喜欢编程,我对微积分不好。