2015-01-06 3 views
1

Мне было интересно, может ли кто-нибудь мне помочь. Я пытаюсь модализовать овальную комнату, и балки проходят параллельно друг другу с интервалом 400 мм, начиная и заканчивая 200 мм от верхушек овала. Центральный балл падает на центр овала в точке (0,0).Ellipse - Поиск y-координаты для конкретной координаты x

Таким образом, овал расположен под углом = 0, с центром (0,0). Основная ось имеет длину 6000 мм в направлении x, а малая ось - 3500 мм в направлении y. Балки также работают в направлении y.

Мне нужно найти узел для каждой балки вдоль внешнего края эллипса. Поэтому, очевидно, я знаю, что значения x будут -2800, -2400, ..., 0, ..., 2000, 2400, 2800 и что центральный балл будет иметь один узел в (0, 1750), а один на (0, -1750), но как я могу найти значения y для всех остальных x-координат?

Большое спасибо.

p.s. В случае, если вы не можете сказать, что у меня есть исключительно рудиментарные навыки MATLAB.

+0

Посмотрите [здесь] (http://stackoverflow.com/questions/2153768/draw-ellipse-and-ellipsoid-in-matlab) и [здесь] (http://www.mathworks.com/matlabcentral/ответы/86615-хау к сюжетно-ан-эллипс). –

+0

Мне удалось нарисовать эллипс и построить его, но в массиве я хочу найти значение y для определенного значения x. Есть идеи? На данный момент столбцы массива, похоже, не называются. –

+0

Не можете ли вы использовать ту же формулу, которую вы использовали при рисовании эллипса? –

ответ

0

Удобно работать с полуосями, обозначенными а и b ниже. Уравнение эллипса есть (x/a)^2 + (y/b)^2 = 1, что дает два значения y, положительные b * sqrt (1- (x./a)^2) и отрицательные b * SQRT (1- (x./a)^2).

В MATLAB вы можете вычислить их таким образом:

a = 6000/2; 
b = 3500/2; 
x = -2800:400:2800; 
yP = b.*sqrt(1-(x./a).^2); 
yN = - yP; 

Так Ю.П. содержит положительную у-координату и Yn содержит отрицательную у-координату.

Точки перед арифметическими действиями означают, что они выполняются по векторам по пометке.

Смежные вопросы