1

我正在尝试在 Openscad 中使用 Bresenham 的算法。我把事情一点一点地分解,看看哪里出了问题。查看 Openscad 的输出,我发现 cos 值对于提供的值不正确。这是 Openscad 显示的值和 cos(value) 的列表。

ECHO: 0.628319, 0.99994
ECHO: 1.25664, 0.999759
ECHO: 1.88496, 0.999459
ECHO: 2.51327, 0.999038
ECHO: 3.14159, 0.998497
ECHO: 3.76991, 0.997836
ECHO: 4.39823, 0.997055
ECHO: 5.02655, 0.996154
ECHO: 5.65487, 0.995133
ECHO: 6.28319, 0.993993

这是由代码生成的:

spots = 10;
difference(){
cylinder(r=50, h=10, center=true);
translate ([0,0,-10])cylinder(r=5, h=20);
for ( z = [1:10]) {
    assign (step = z/spots)
    assign (step2 = (2 * PI * step))
    echo (step2, cos(abs(step2)));
        }
             }
4

1 回答 1

3

openscad 中的 cos() 需要度数,试试:

//assign (step2 = (2 * PI * step))
assign(step2 = 360*step)
于 2014-06-16T14:48:42.617 回答