如何用Scilab得到2d轮廓圆锥的x,y坐标?

时间:2016-02-25 14:24:33

标签: coordinates contour scilab

我是SciLab的初学者。

我对圆锥曲线的问题是:

我的等式是:

  

a x x + b x y + c y y + d x + e y + f = z其中z = 0

我想得到椭圆上所有点的(x,y)坐标,其中z = 0

例如,我使用Scilab代码的函数是:

function [z] = fct(x,y)
    z = -0.04088*x^2 - 0.10063*y^2 - 0.21767*x + 0.44632*y + 0.04286*x*y
endfunction

我用以下方式设置工作空间:

x=-10:10; y=-10:10;

我画椭圆:

fcontour2d(x, y, fct, [0,0], style=[9,9])

现在我如何得到绘制椭圆的所有点((x,y)坐标),其中z = 0?

也许我可以用z=feval(x,y,fct)做一些我不知道的事情。

谢谢你我前进的帮助。

于连

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案,这要归功于我在网上找到的一些pdf文档。

以下是Scilab的源代码:

// conic function

function [z] = fct(x,y)

Z = -0.04088 * X ^ 2-0.10063 * Y ^ 2-0.21767 * X + 0.44632 * Y + 0.04286 * X * Y

endfunction可写

//平面z = 0

function [z] = f(x,y)

Z = 0 * X * Y

endfunction可写

//工作空间

X = -10:10; Y = -10:10;

//我们从圆锥函数中绘制2d椭圆,其中z = 0

fcontour2d(X,Y,FCT,[0,0],式= [9,9])

//我们编写一个函数来找到圆锥曲面和地方曲面之间的交点

函数[Y] = coniques(X),Y = [fct(X(1),X(2)),f(X(1),X(2))] endfunction可写

对于i = -10:0.1:10 //对于y轴的每个偏移量(i从-10到10,步长为0.1)

代表= fsolve([ - 10,I],coniques); //我们找到第一个交点的坐标(rep(1)= x,rep(2)= y)(从左到右搜索)

xpolys(rep(1),rep(2), - 1)//我们在图表上绘制点

代表= fsolve([10,I],coniques); //我们找到第二个交点的坐标(rep(1)= x,rep(2)= y)(从右到左搜索)

xpolys(rep(1),rep(2), - 1)//我们在图表上绘制点