2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Вписать эллипс в параллелограмм
Сообщение17.05.2018, 17:00 
Добрый день.

Поставил я себе грандиозную задачу — изобразить проекцию квадрата с вписанной окружностью на произвольную плоскость. Квадрат проецируется достаточно просто и в общем виде он принимает вид параллелограмма. Окружность же преобразуется в эллипс, центр которого лежит на пересечении диагоналей параллелограмма, стороны параллелограмма касаются эллипса и в точках касания делятся пополам.

С помощью элементарных преобразований я могу вычислить координаты точек окружности на получившейся проекции, но при отрисовке возникает некоторая угловатость. Помогите советом, как вычислить координаты фокусов получившегося эллипса или размеры и угол поворота полуосей, чтобы я мог отрисовать получившийся эллипс, опираясь на эти данные, а не разбивая окружность на громадное количество отрезков.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение17.05.2018, 18:21 
Самый, пожалуй, тупой вариант — помнится, кривая второго порядка однозначно определяется по пяти точкам.

-- 18.05.2018, 01:24 --

Второй, пожалуй, чуть поумнее: как понимаю, параллельная проекция, да? Как проходит большая ось эллипса? Как малая? И чему, стало быть, равно отношение их длин?

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение17.05.2018, 19:59 
Аватара пользователя
Когда я была маленькой, у нас в школе было черчение. И как раз возникала такая проблема. Вместо эллипса нас учили рисовать овал, т.е. кривую, сшитую из четырех дуг разных окружностей, с общими касательными в точках соединения, так что на глаз это практически не отличалось от эллипса.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение17.05.2018, 21:21 
Боюсь, овал в таком случае плохой совет (кроме того, это приближение тем хуже, чем дальше эллипс от окружности, а тут ограничений не поставлено, так что стоит предполагать, что в половине случаев эллипс будет неудобный). Современные средства рисования обычно хорошо справляются с рисованием дуг произвольно повёрнутых эллипсов, чем лучше пользоваться.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 00:38 
SpBerkut,
Вам поможет преобразование родства (это аффинное преобразование с точечно-двойной прямой). Гуглите.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 08:16 
Ну раз проекция квадрата параллелограмм, то эта проекция - аффинное преобразование.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 09:11 
iifat
Цитата:
Самый, пожалуй, тупой вариант — помнится, кривая второго порядка однозначно определяется по пяти точкам.
Это так. Думал про это. Оставил на самый крайний случай, т.к. делаю всё в AutoLISP'е и там со СЛАУ туго. Придётся всё с нуля выдумывать.
Цитата:
Второй, пожалуй, чуть поумнее: как понимаю, параллельная проекция, да? Как проходит большая ось эллипса? Как малая? И чему, стало быть, равно отношение их длин?
Проекция параллельная, да. Если получится каким-то образом малой кровью найти расположение осей эллипса, то будет превосходно.

alisa-lebovski
Цитата:
Вместо эллипса нас учили рисовать овал, т.е. кривую, сшитую из четырех дуг разных окружностей
Не подходит. Во-первых, мне всё же нужен именно эллипс. Во-вторых, если я всё верно помню, овал этим способом можно вписать только в ромб, а не в произвольный параллелограмм.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 11:50 
SpBerkut в сообщении #1313148 писал(а):
Проекция параллельная, да.

Так. на всякий случай. Плоскость проекции можно считать проходящей через центр квадрата (окружности).

-- 18.05.2018, 13:09 --

Вообще, ИМХО, проектируемую окружность проще считать расположенной в плоскости $xOy$: там, параметрическое уравнение окружности можно взять, так координаты поврозь можно подставлять, куда нужно...

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 13:09 
Аватара пользователя
Через вершину параллелограмма проведите прямую. Из двух соседних вершин параллелограмма опустите на эту прямую перпендикуляры. Если площади двух получившихся прямоугольных треугольников равны, то проведенная прямая задает направление оси вписанного эллипса.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 16:17 
Всем спасибо за помощь. В итоге сделал всё через матрицу коэффициентов уравнения в общем виде. Не хотел я за матрицы браться, а пришлось.

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение18.05.2018, 17:48 

(Оффтоп)

SpBerkut в сообщении #1313213 писал(а):
Не хотел я за матрицы браться, а пришлось
Вы брались за матрицы? И потом теми же руками на форум пишете? Хотя бы вымыли?

 
 
 
 Re: Вписать эллипс в параллелограмм
Сообщение21.05.2018, 08:59 
Аватара пользователя
Изображение
$AB$ - сторона параллелограмма
$Q$ - его центр
$P$ - середина $AB$
$S$ - симметрична $Q$ отностительно $AB$
$R$ - на прямой $SP$ и на окружности $ASB$
Тогда биссектриса угла $PQR$ - ось вписанного эллипса

 
 
 [ Сообщений: 12 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group