Цитата: Ё от 27.06.17, 18:47:34
Прикол в том, что Алексей Васильич - хитрая зараза! Это ж надо так народ "выводить на чистую воду"! :)))))
Вот и "вывелись на чистую воду" технари и "гуманитарии". "Гуманитарии", которые кичатся большим опытом проектирования сложных деталей, а на деле боятся в цех зайти, чтобы им от токарей/фрезеровщиков этим чертежом не прилетело.
Цитата: YNA от 28.06.17, 11:15:06
Это я ещё не прикалывался. :-)))
Вот прикол: на рисунке показаны два сечения так называемой "цилиндрической" поверхности. В первом сечении образующая эллипс, во втором окружность. Можно как угодно разглядывать чертёж, но выловить этот подвох не удастся. Другими словами в детали есть неопределённость не разрешимая ни какими проекционными видами.
Почему эллипс - да просто мне так захотелось построить эту поверхность, кто мне запрещал?. :)
Вы забываете, что эллипс строится по окружностям
Цитата: 6o6auko от 07.07.17, 19:27:05
Вы забываете, что эллипс строится по окружностям
Интересное решение! Не знал что так можно строить эллипсы. 8-)
У меня давно сложилось мнение, что окружность - это частный случай эллипса, оси которого равны, и вряд ли можно сделать наоборот. :)
Вспоминайте начертательную геометрию построение эллипса
Так вспоминать нужно построение эллипса, или овала!? Вроде как это разные геометрические фигуры!
Овал – это замкнутая вытянутая геометрическая фигура, обладающая правильной формой и особыми свойствами. Вписанная в окружность, она обладает как минимум 4 точками экстремума, то есть вершинами. ... Эллипс – это замкнутая плоская кривая, частный случай овала, у которого имеется 4 вершины в точках экстремума.(с)
Цилиндр в сечении дает эллипс.
Насколько я припоминаю математику элипс это геометрическая фигура, особенностью которой является то что она НЕ ИМЕЕТ постоянного радиуса ни в одной из точек. Для расчета измерения радиуса есть какая то формула. Вот лениво её искать. А то что показано выше со вписанием "элипса" в грань куба есть условное упрощение принятое в черчении. И это как раз есть овал.
Я дал цитату из вики. Если вам лениво искать, зачем писать опровержение без подтверждения? Даже прикрепил картинку с построением эллипса. Компас строит эллипс именно по двум радиусам
Цитата: 6o6auko от 08.07.17, 13:39:56
Я дал цитату из вики. Если вам лениво искать, зачем писать опровержение без подтверждения? Даже прикрепил картинку с построением эллипса. Компас строит эллипс именно по двум радиусам
Нет, давайте все же не вносить путаницу.
Компас не строит эллипс по радиусам. Он строит эллипс математически правильно, определяя геометрическое место точек по указанному центру, а также конечным точкам двух полуосей. Полуось - это не радиус. Радиус в каждой точке разный, формулу легко найдете в той же вики, если дочитаете до конца.
Рисунок с ручными построениями, который вы привели - это овал, состоящий из двух пар сопряженных дуг разного радиуса. В техническом черчении (карандашном) он всегда применялся как замена эллипсу. Потому что для точного построения эллипса придется использовать эллипсограф.
Эллипс строится при помощи лекала или 2-х иголок, нитки и карандаша. Овал при помощи циркуля.
Согласен, погорячился. Но в любом случае (в нашем, в частности) при сечении цилиндра поверхностью получается эллипс, а не овал.
Как определить кривую, радиус это, или кривая? Как понять по сечению, что это за кривая?
Цитата: 6o6auko от 08.07.17, 19:59:23
Согласен, погорячился. Но в любом случае (в нашем, в частности) при сечении цилиндра поверхностью получается эллипс, а не овал.
Как определить кривую, радиус это, или кривая? Как понять по сечению, что это за кривая?
КОМПАС сам подскажет.
Подсказать то он подскажет, но, как говорится, не верь глазам своим. :-)))
Вот пример равноосного эллипса. Для компаса это окружность и он спокойно ставит размер диаметра, хотя в свойствах понимает, что это эллипс. Если же это будет проекционный вид, то не будет ни какого способа отличить эллипс от окружности. Окружность - это частный случай эллипса.
Вот что про эллипс написано в Википедии (https://ru.m.wikipedia.org/wiki/%D0%AD%D0%BB%D0%BB%D0%B8%D0%BF%D1%81)
Цитата: YNA от 09.07.17, 08:22:59
...Окружность - это частный случай эллипса.
Очевидно, что это так.
Уравнение окружности: x² + y² = r².
Уравнение эллипса: x²/a²+y²/b²=1.
Если задать равенство полуосей эллипса a=b=r, то получим всё то же уравнение окружности.
Вот задачка по построению эллипсов.
Нужно построить эллипс по трём точкам как показано на первом рисунке. Инструментами эллипса такое сделать нельзя, но при желании можно. :)
Если первая часть задачи удалась, то можно её усложнить. Нужно минимизировать площадь сегмента показанного на втором рисунке. Математически легко вычислить, что минимальная площадь будет равна 133,3333.... Но одно дело вычислить, а другое - построить.
Сразу предупреждаю что процедура уменьшения/измерения площади очень глючная (по крайней мере для v17) и неминуемо будет приводить к падению программы, по этому обязательно закройте все открытые документы!
Кстати, вот эллипсы и овалы в АКАД и Компас. Если кому интересно. При том всё равно считается, что в САПР (любом) строится не идеальный эллипс, а просто что-то близкое к нему.
Цитата: YNA от 10.07.17, 07:43:13
Вот задачка по построению эллипсов.
Нужно построить эллипс по трём точкам как показано на первом рисунке. Инструментами эллипса такое сделать нельзя, но при желании можно. :)
Если первая часть задачи удалась, то можно её усложнить. Нужно минимизировать площадь сегмента показанного на втором рисунке. Математически легко вычислить, что минимальная площадь будет равна 133,3333.... Но одно дело вычислить, а другое - построить.
Сразу предупреждаю что процедура уменьшения/измерения площади очень глючная (по крайней мере для v17) и неминуемо будет приводить к падению программы, по этому обязательно закройте все открытые документы!
Могу построить эллипс по двум точкам, с учетом того, что одна их них является экстремумом и известны ее координаты от центра эллипса.
Не понятна вторая часть задачи.
Удалил пять сообщений которые не имеют ничего общего с построением элипсов. Всех, чьи сообщения удалены предупреждаю что при повторном появлении сообщений провакационного содержания буду раздавать бананы.
Не сердитесь модератора.
Цитата: YNA от 10.07.17, 07:43:13
Вот задачка по построению эллипсов.
Нужно построить эллипс по трём точкам как показано на первом рисунке. Инструментами эллипса такое сделать нельзя, но при желании можно. :)
Если первая часть задачи удалась, то можно её усложнить. Нужно минимизировать площадь сегмента показанного на втором рисунке. Математически легко вычислить, что минимальная площадь будет равна 133,3333.... Но одно дело вычислить, а другое - построить.
Сразу предупреждаю что процедура уменьшения/измерения площади очень глючная (по крайней мере для v17) и неминуемо будет приводить к падению программы, по этому обязательно закройте все открытые документы!
Первая часть при помощи параметризации легко решается. Для второй задачи другого решения, кроме как постепенно увеличивать размер полуоси и перемеривать площадь, я не вижу пока. И да, чем ближе к конечной цели, тем глючнее измерения.
UPD: Если минимальная площадь равна 133,(3), то как объяснить второй скин!?
UUPD: Сам КОМПАС у меня не глючит, глючат только измерения иногда. Я эллипс за крайнюю точку мышью растягиваю.
Прикладываю фрагмент, где площадь сегмента ушла за пределы расчётов математики.
Да, чем дальше тем глючнее. После 10000 мм может вообще завесится и придётся убивать программу диспетчером задач. :(
Конечная цель - эллипс с бесконечной осью то есть парабола. Для параболы указанная площадь находится элементарно:
(X^2/2 - X^3/3) x K^2 = 133,3333... ,где К - коэффициент перевода от относительных единиц к миллиметрам.
Цитата: YNA от 10.07.17, 07:43:13Нужно построить эллипс по трём точкам как показано на первом рисунке. Инструментами эллипса такое сделать нельзя, но при желании можно.
Можно, но нельзя :) Представь эти три точки тремя крайними точками эллипса. И получишь то, что в приложении. А промежуточных вариантов бесконечное множество.
PS Прошу прощения. Вы, оказывается, как раз множество вариантов и обсуждаете
Один из наших пользователей почему то постеснялся добавить ещё несколько ссылок касательно обсуждаемой темы. Делаю это за него.
ЦитироватьАлексей Павлович Доброе утро!
Добавьте пожалуйста ещё две ссылки из Википедии: На овал https://ru.m.wikipedia.org/wiki/%D0%9E%D0%B2%D0%B0%D0%BB
И на окружность: https://ru.m.wikipedia.org/wiki/%D0%9E%D0%BA%D1%80%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C
В окружности мне понравилась тема: " Аналитическая геометрия окружности" , особенно ссылка на "Коническое сечение". там даже видео вложено.
сечения конуса, https://ru.m.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5/quote]
Цитата: YNA от 10.07.17, 10:49:20Конечная цель - эллипс с бесконечной осью то есть парабола. Для параболы указанная площадь находится элементарно:
(X^2/2 - X^3/3) x K^2 = 133,3333... ,где К - коэффициент перевода от относительных единиц к миллиметрам.
Усомнюсь в этом. Чем больше эта ось, тем больше участок эллипса приближается к отрезку. При бесконечно большой оси площадь треугольника равна (10*20)/2 = 100. И площадь по картинке как раз и будет бесконечно стремиться к этой цифре (но не достигать - потому, что всё-таки до отрезка не дойдёт).
Цитата: Starik от 10.07.17, 11:04:29ссылка на "Коническое сечение"
Необходимо поправить текст ссылки. Там замыкание цитаты как часть ссылки прошла.
Вот ссылка на википедию (Коническое сечение):
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
Внесу свою лепту в клуб любителей эллипсов :)
Цитата: bull от 10.07.17, 10:06:54
Кстати, вот эллипсы и овалы в АКАД и Компас. Если кому интересно. При том всё равно считается, что в САПР (любом) строится не идеальный эллипс, а просто что-то близкое к нему.
Это не так. Зачем САПР-системе строить "что-то близкое", если можно построить именно эллипс - кривую, которая описывается известными параметрическими уравнениями и в этом смысле не сложнее окружности?
Для примера я набросал на Пайтоне макрос, который работает в два этапа. Вначале рассчитываются и выводятся координаты точек эллипса по известным из математики формулам. Затем, уже с помощью команды "Эллипс" геометрического ядра, сверху строится сама кривая.
Попробуйте, даже на пределе масштаба, найти хоть какую-то погрешность. Кривая - это именно теоретический эллипс, построенный без всяких приближений, они в данном случае не нужны.
Это в нашем, человеческом, понимании есть разница, что строить. Для окружности возьмем циркуль, а вот эллипс - это уже что-то сложное и нужно как-то подбирать.
САПР-системе все равно - для построения кривой (в том числе и окружности) ей нужна формула, по которой определяется координата каждой точки. И если такая формула есть, то кривая не будет отличаться от теоретической. Если, конечно, не учитывать особенности представления в компьютере чисел с плавающей запятой и прочие нюансы.
Различные приближения могут быть там, где кривую или поверхность невозможно представить аналитической зависимостью.
Кстати, на isicad.ru тоже изучают эллипсы и овалы 88)) :
http://isicad.ru/ru/articles.php?article_num=19284
# -*- coding: cp1251 -*-
# построение эллипса
import Kompas10API5 as KAPI
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import MiscellaneousHelpers as MH
import math
iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
iKompasObject.Visible = True
iDocument2D = iKompasObject.ActiveDocument2D()
if iDocument2D is None:
iKompasObject.ksMessage("Откройте (создайте) фрагмент или чертеж Компас-3D")
exit(0)
try:
# исходные данные
# ==================================
x0 = 120 # координата x центра эллипса
y0 = 130 # координата y центра эллипса
a = 50 # первая полуось
b = 25 # вторая полуось
phi = 30 # угол наклона эллипса
n = 64 # количество расчетных точек
# ==================================
# начальное значение угла
t = 0
# конечное значение угла
tmax = 2 * math.pi
# угловой шаг в радианах
step = (2 * math.pi) / n
# угол наклона в радианах
phir = phi * math.pi / 180
# цикл от 0 до 360 градусов
while t <= tmax:
# расчет точки на кривой
x = a * math.cos(t)
y = b * math.sin(t)
# поворот точки
x1 = x * math.cos(phir) - y * math.sin(phir)
y1 = x * math.sin(phir) + y * math.cos(phir)
# сдвиг точки
x = x1 + x0
y = y1 + y0
# вывод в консоль координаты точки
print('t = ' + ("%.3f" % t) + '; x = ' + ("%.3f" % x) + '; y = ' + ("%.3f" % y))
# построение точки по координатам
iDocument2D.ksPoint(x, y, 0)
t += step
# строим эллипс поверх точек
iObjParam = KAPI.ksEllipseParam(iKompasObject.GetParamStruct(LDefin2D.ko_EllipseParam))
iObjParam.Init()
iObjParam.xc = x0
iObjParam.yc = y0
iObjParam.A = a
iObjParam.B = b
iObjParam.angle = phi
iObjParam.style = 1
obj = iDocument2D.ksEllipse(iObjParam)
except:
print("Ошибка")
Цитата: Aleksei от 10.07.17, 22:57:33Зачем САПР-системе строить "что-то близкое", если можно построить именно эллипс
Затем, что точность эллипса зависит от количества опорных точек, взятых за основу при построении графики. В отличие от отрезков, дуг и овалов, где опорных точек минимум. Т.е. эллипс по сути - сплайн, описанный формулой. А когда профиль кривой требует множества опорных точек (стремящихся к бесконечности), то в любом случае будет происходить аппроксимация в той или иной мере. Да, отклонения от теоретического профиля могут быть ничтожны, но они будут.
Вспомните, как в ВУЗе строили подобные профили. Задаемся как можно бо'льшим количеством точек и "на глаз" проводим плавную линию между ними. Вы же не будете утверждать, что профиль при этом получается идеальный? Так и с САПР. Только точность побольше.
PS А окружность некоторые даже на бумаге умудряются ручкой провести идеально.
Цитата: bull от 11.07.17, 07:54:09
Затем, что точность эллипса зависит от количества опорных точек, взятых за основу при построении графики. В отличие от отрезков, дуг и овалов, где опорных точек минимум. Т.е. эллипс по сути - сплайн, описанный формулой. А когда профиль кривой требует множества опорных точек (стремящихся к бесконечности), то в любом случае будет происходить аппроксимация в той или иной мере. Да, отклонения от теоретического профиля могут быть ничтожны, но они будут.
Доказательством этого может быть эллипс, который я выложил на предыдущей странице. Хотя математически площадь сектора должна стремиться к 133,(3), КОМПАС показывает разброс значений площади (даже в минус) при приближении к этому пределу. Это можно объяснить только аппроксимацией.
- Постройте эллипс по размерам. показанным на рисунке. Такие размеры удобны тем, что все параметры эллипса выражаются целыми числами.
- Поставьте произвольные точки на кривой, например на рисунке 1 и 2.
- Измерьте с точностью до 10 знака сумму расстояний от фокусов до любой точки. (см. рис)
Если предположить, что это аппроксимация, то точность её должна быть просто фантастическая! Думаю компасу будет намного легче просто построить правильную кривую по заданному уравнению, чем возится с такой прецизионной аппроксимацией. :)
Цитата: ТрындецЪ от 11.07.17, 08:35:09Хотя математически площадь сектора должна стремиться к 133,(3),
я там писал уже, что на самом деле не 133.3, а 100 (при бесконечном значении полуоси.). А так, да, аппроксимация имеет значение.
YNA, рисунок доказывает только то, что аппроксимация идет по максимально достижимой точности. И ещё... Есть такой момент, как "самоконтроль". Проверка самого себя всегда выдаст абсолютный результат (если не заложено упрощенной отрисовки какой, влияющей на ступенчатость контура). Другое дело - сравнение одних и тех же кривых из разных САПР в одной нейтральной программе. Вот тогда и можно будет судить о степени аппроксимации. (Это ни в коем случае не призыв к действию :) )
Цитата: bull от 11.07.17, 09:37:07
я там писал уже, что на самом деле не 133.3, а 100 (при бесконечном значении полуоси.).
Кривая второго порядка (эллипс, окружность, парабола), построенная по трём точкам, ни когда не может быть аппроксимирована отрезками. Указанные три точки уже задают кривизну, однозначную для окружности и параболы и неоднозначную для эллипса.
Легче показать на примере.
На рисунке слева показана парабола, построенная по трём указанным точкам. Она единственная и неповторимая. Тут же указаны все интересующие нас параметры.
Справа показан эллипс с длиной оси 2000 мм (больше трудно строить) :) По размерам 39,7 и 2,49 легко понять, что дуга эллипса более выпукла чем парабола в указанном диапазоне и, соответственно, площадь закрашенного участка у эллипса больше. Увеличивая длину оси до бесконечности будем бесконечно приближаться к параболе, но ни как не к отрезку (показан на рисунке эллипса штриховой линией).
Возможно есть какое то строгое математическое доказательство этому, не знаю. :shu:
Цитата: YNA от 11.07.17, 11:41:512000 мм (больше трудно строить)
так в этом-то и вся соль. Математически тоже не могу формульно доказать, но убеждение всё-таки есть, что стремиться будет именно к 100. Впрочем, никто от ошибок не застрахован и заблуждений. :)
PS Построил в автокаде, ось 50 000. Площадь 133.31. Можно ещё больше, там ограничений нет :) Но цифра уже меньше 133.3(3)PS Всё-таки ошибся, похоже. Построил с полуосью в миллион (!!!). Дает значение площади 133.3291 (больше предыдущего значения т.е.). Стало быть, просто аппроксимация уже влияет и цифра 133.3(3) верная.
Любая кривая строится по точкам. Даже окружность - это множество точек, равноудаленных от точки называемой центром. Какое бы число точек для построения мы не выбрали, если мы постоянно будем увеличивать масштаб приближения, то в конечном итоге между двумя соседними точками увидим пустоту.
КОМПАС нам строит не точки а кривую (в случае с эллипсом), проходящую через расчетные точки. Уж не знаю, сколько точек для построения он использует, но он их использует.
В случае, когда мы привязываем отрезки к эллипсу мы привязываемся к какой-то из этих расчётных точек, отсюда и точности в измерении расстояний до фокусов.
Цитата: bull от 11.07.17, 07:54:09
Затем, что точность эллипса зависит от количества опорных точек, взятых за основу при построении графики. В отличие от отрезков, дуг и овалов, где опорных точек минимум.
О каких опорных точках речь? Зачем они? Поймите, есть уравнения, которые позволяют вычислить
любую точку кривой. С любым шагом. Геометрическое ядро представляет себе кривую не в виде массива точек на экране, как вам представляется, а в виде аналитической зависимости. Для адекватного отображения плавной кривой на экране система может рассчитать координаты любого экранного пиксела, каким бы маленьким или большим он не был. Допустим, если разрешение экрана небольшое, кривая будет выглядеть более "угловатой", но от этого расчеты с ней не станут менее точными.
Точно так же графическое ядро считает, например, точки пересечения кривых: аналитически, а не по тем линиям, которые нарисованы на экране. Экран вообще не нужен графическому ядру - он нужен только пользователю, для того, чтобы в интерактивном режиме с этим ядром общаться.
Насчет окружности поясню еще раз: для ее
отображения системе необходимо рассчитывать столько же точек, сколько и для построения эллипса. Никакой разницы. Формулы даже одни и те же.
Цитата: bull от 11.07.17, 07:54:09
Т.е. эллипс по сути - сплайн, описанный формулой.
Тогда окружность, вероятно, это сплайн, не описанный формулой? :o
Эллипс - это эллипс, а не сплайн. Сплайн - это тоже кривая, которая, в зависимости от типа сплайна, описывается своими системами уравнений. И точно так же по этим уравнениям рассчитывается и отображается.
Цитата: bull от 11.07.17, 07:54:09
Вспомните, как в ВУЗе строили подобные профили. Задаемся как можно бо'льшим количеством точек и "на глаз" проводим плавную линию между ними.
У САПР нет глаз. И проводить плавную линию, не рассчитав предварительно точки, она, в отличие от нас, не умеет.
Цитата: YNA от 11.07.17, 11:41:51
На рисунке слева показана парабола, построенная по трём указанным точкам. Она единственная и неповторимая.
А я могу по этим трем точкам еще две другие параболы построить :) параметрические. Правда, они будут симметричными, но отличаться от первой.
Aleksei, если это действительно так, то почему тогда КОМПАС (геометрическое ядро) не может корректно просчитать площадь в приведенном ранее мною примере?
Цитата: ТрындецЪ от 11.07.17, 20:27:57
Aleksei, если это действительно так, то почему тогда КОМПАС (геометрическое ядро) не может корректно просчитать площадь в приведенном ранее мною примере?
Первое что приходит в голову, то что у Вас и у YNA, центр эллипса ни как не определён. Ведь при построении в Компасе по трём точкам эллипса. Первое что спрашивает Компас это ввести центр, а затем уже координаты 3 точек. Ведь для расчётов нужны координаты точек от центра, а не расстояния между ними. Меняйте центр по оси х и проводите через эти точки столько эллипсов сколько Вам понравиться и подбирайте нужную точность площади сегмента.
Всего Доброго!!!
При наклонении осей площадь одной дольки будет стремиться к 100, а другой к бесконечности. При такой изначально некорректно поставленной задаче такое решение правильное! Для правильной постановки задачи нужно было задать условие минимизации суммарной площади долек. :)
Цитата: Aleksei от 11.07.17, 16:24:29Геометрическое ядро представляет себе кривую не в виде массива точек на экране, как вам представляется, а в виде аналитической зависимости.
Я прекрасно понимаю, что вы хотите сказать. И в какой-то мере это так и есть.
НО!!! Любой компьютер имеет ограниченные возможности. И САПР создаются с учетом этих возможностей. И расчет геометрии точек профиля не может быть бесконечно малым. Не надо относиться к компьютеру как к сферическому коню в вакууме. Да, при образмеривании периметра САПР даст точное значение, поскольку и размер будет ставиться с учетом того лимита, что есть на данный момент. А вот при расчете площадей и других опосредованных расчетов (пересечение двух сложных кривых там или ещё что) уже пойдут погрешности. Эти погрешности будут почти что ничтожны, но будут. И поэтому и говорю, что САПР строит кривую точно так же, как и мы на бумаге. Только точность много выше.
Если же говорить о простых примитивах, то там каких-то суперсложных расчетов расположения точки не нужно. Если отрезок, то любая точка будет между двумя конечными, если окружность - то опять-таки любая точка будет на одном расстоянии от центра. Компьютеру при этом не надо дополнительно учитывать угловое положение, два фокуса, какие-то интегральные исчисления для расчета площади под кривой.
Цитата: YNA от 12.07.17, 06:07:10
При наклонении осей площадь одной дольки будет стремиться к 100, а другой к бесконечности.
Конечно. Но задача была поставлена именно как без наклона осей.
Цитата: Студент 2015 от 11.07.17, 22:22:39
Первое что приходит в голову, то что у Вас и у YNA, центр эллипса ни как не определён. Ведь при построении в Компасе по трём точкам эллипса. Первое что спрашивает Компас это ввести центр, а затем уже координаты 3 точек.
У Вас два взаимоисключающих утверждения в двух соседних предложениях.
Центр у меня определён, хотя бы по той причине, что КОМПАС попросил это сделать при построении эллипса по трем точкам.Более того, я его зафиксировал во фрагменте, поэтому его координаты всегда постоянны.
Цитата: ТрындецЪ от 12.07.17, 08:35:31
У Вас два взаимоисключающих утверждения в двух соседних предложениях.
Центр у меня определён, хотя бы по той причине, что КОМПАС попросил это сделать при построении эллипса по трем точкам.Более того, я его зафиксировал во фрагменте, поэтому его координаты всегда постоянны.
Мы с Вами говорим на разных языках.
Начнём с начала. Что у нас есть два отрезка с определенными точками 1,2,3. И как они расположены относительно осей х и у. Но мы не знаем где центр осей, т.е. какое расстояние "а" (полуось) на первой картинке. Согласны?
Далее выбираем окружность по 3 точкам. Вводим точку 1, ничего пока нет, наводим на точку 2 и нажимаем ввод. И теперь медленно отводим курсор к точке 3. Что появилось? Фантом окружности и её центр. Плавно перемещаемся к точке 3, центр окружности также плавно переезжает и меняется радиус окружности.
Почему так происходит? Объяснение на 2 картинке. Окружность это частный случай эллипса. Согласны? Но у окружности заранее принято, что её эксцентриситет равен нулю. У эллипса он не определён и меньше 1
Поэтому построить эллипс по 3 точкам не получится, пока не определимся, где её центр. Правильно?
Площадь сегмента, это уже производная величина от определённого эллипса с известным эксцентриситетом, фокусами и осями. Согласны? Если Вы смогли вывести формулу определяющую по площади сегмента, главные параметры эллипса. То это здорово!!! Но пока этой формулы нет.
Далее опять к 1 картинке. Я чисто на глаз сдвинул центр 2 эллипса от начала координат вправо на 2 мм.
Получил эллипс 2. Затем ещё раз вправо на 7 мм, эллипс 3. Затем построил окружность. Как меняется площадь сегмента видно из таблицы. Т.е. от окружности влево по оси х и до бесконечности мы будем получать эллипсы. Согласны?
Можно,наверно,вывести какую-то зависимость изменения площади нашего сектора от изменения полуоси
эллипса "а" и построить этот эллипс. Но это всё будет опять приближенно и дейстовать только в нашем случае.
Цитата: Студент 2015 от 12.07.17, 19:24:24
Начнём с начала. Что у нас есть два отрезка с определенными точками 1,2,3. И как они расположены относительно осей х и у. Но мы не знаем где центр осей, т.е. какое расстояние "а" (полуось) на первой картинке. Согласны?
Нет. Я уже писал, что "растягивал" эллипс мышью за крайнюю правую точку, тем самым я задавал размер большей полуоси эллипса. Малая полуось подстраивалась автоматически.
И вот растягивал я эллипс и замерял площадь сектора. И чем ближе я приближался к значению площади 133,(3) тем непредсказуемее становились измерения (могли быть как больше 133,(3), так и меньше).
Извиняюсь.
Допустил одну ошибку в сообщении. Центр эллипса можно двигать и вправо от окружности по оси х. Вспомнил ответ bull. На картинке для примера эллипс 5.(данные по площади есть в таблице) При этом полуось "а" изменит ориентацию на 90 градусов. И двигать до момента пока не станет равным 2а = 40 мм. в нашем примере, или (а = 20) мм. Серенький эллипс без обозначений.
Ещё на этой картинке изменил количество знаков в запятой для размеров.
Цитата: ТрындецЪ от 12.07.17, 23:02:59
Нет. Я уже писал, что "растягивал" эллипс мышью за крайнюю правую точку, тем самым я задавал размер большей полуоси эллипса. Малая полуось подстраивалась автоматически.
И вот растягивал я эллипс и замерял площадь сектора. И чем ближе я приближался к значению площади 133,(3) тем непредсказуемее становились измерения (могли быть как больше 133,(3), так и меньше).
Я думаю, в этой задаче с "бесконечно длинным" эллипсом просто проявляется потеря точности расчетов при приближении к пределу.
Для того, чтобы "точно" найти минимальную площадь, нужно устремить к бесконечности большую полуось эллипса, что вы и делаете. Рано или поздно наступает момент, когда дадут о себе знать ограничения, связанные с представлением больших и малых чисел при расчетах.
Вот параметры эллипса, выложенного в вашем примере:
a = 318265.2738
b = 2522.9754
Посчитайте его эксцентриситет: e = 0,999968579. Т.е. он отличается от параболы только в пятом знаке после запятой. Это при том, что размеры его полуосей я взял с точностью до четвертого знака, т.е. довольно грубо.
Далее, рассчитаем площадь. Аналитическая формула для половинки данного сегмента:
S = (1/2)*(a*b*arccos(x0/a) - x0*y0)
Здесь x0, y0 - координаты верхней точки эллипса.
Для нашего случая:
x0 = 318255.2738
y0 = 20
Заметьте, что перед арккосинусом получается очень большое число, а сам арккосинус очень близок к нулю. И чем дальше мы будем растягивать эллипс, тем больше это будет проявляться.
Расчет в Excel дает площадь 133,181610144209. Т.е. тоже "меньше минимального". Но если взять значения полуосей до 10 знаков и снова рассчитать, получается уже 133,381378946360. Теперь мы уже на "правильной" стороне. Видите, насколько все "на тоненького".
При этом учтем, что полуоси эллипса при предложенном методе построения выражаются иррациональными числами и в любом случае при расчетах округляются.
В прицепе обыкновенный непараметрический эллипс с "нормальными" параметрами. Аналитический расчет площади совпадает с компасовским до 8 знака.
Цитата: bull от 12.07.17, 08:21:12
НО!!! Любой компьютер имеет ограниченные возможности. И САПР создаются с учетом этих возможностей. И расчет геометрии точек профиля не может быть бесконечно малым.
Конечно, это так. Вы другими словами согласились с тем, что я писал выше: САПР, при наличии аналитической зависимости, оперирует в расчетах теоретически правильной кривой (а не как-то сглаженной или приближенной), а результаты расчетов с ней выдает с учетом погрешностей представления чисел в компьютере.
Только пока все равно почему-то считаете, что "простые" и "сложные" примитивы обрабатываются по-разному.
Цитата: bull от 12.07.17, 08:21:12
Если же говорить о простых примитивах, то там каких-то суперсложных расчетов расположения точки не нужно. Если отрезок, то любая точка будет между двумя конечными, если окружность - то опять-таки любая точка будет на одном расстоянии от центра. Компьютеру при этом не надо дополнительно учитывать угловое положение, два фокуса, какие-то интегральные исчисления для расчета площади под кривой.
Ваше определение "если отрезок - то любая точка будет между двумя конечными" ничего не означает для геометрического ядра. Все равно нужна аналитическая зависимость, чтобы либо вывести на экран этот отрезок (иначе говоря, определить, какой пиксел зажигать, а какой нет), либо рассчитать, например, точку его пересечения с другим. Простая эта зависимость или сложная - это может повлиять на быстродействие, но суть одна.
Насчет точности расчетов площадей, периметров, точек пересечения - здесь ситуация сильно зависит от конкретной задачи, что с чем пересекается. Расчет может идти не аналитически, а численными методами. То есть системы уравнений кривых или поверхностей решаются "подбором", с помощью итераций - огромный кусок математики посвящен вопросам, как обеспечить сходимость и точность этих методов.
Ну, а кто-нибудь знает, как именно - не теоретически, а реально - Компас (и др. КАДы) работает?
(Кстати, про довод о расстоянии до точки (в пользу одновременно двух взглядов): точку система может рассчитать точно, а линию строить условно приблизительно. Теоретически, разумеется - я тоже не знаю о работе Компаса.)
Цитата: СВ от 13.07.17, 08:01:09
Ну, а кто-нибудь знает, как именно - не теоретически, а реально - Компас (и др. КАДы) работает?...
Они (http://c3dlabs.com/ru/about/team/) точно знают.
Телефон и "мыло" в правом верхнем углу страницы.
Цитата: Elaeagnus от 13.07.17, 09:21:27
Они (http://c3dlabs.com/ru/about/team/) точно знают.
...
Это и козе и ежу понятно. Речь (о
знающих) - о тех, кто много рассуждал о КАДовских мозгах, ну и о тех, кто их слушал и скромно ухмылялся, т.е. о людях нашего форума.
Если кому-то интересно, на изикаде много статей про эллипсы и овалы от Виктора Чебыкина:
http://isicad.ru/ru/articles.php?article_num=19289
http://isicad.ru/ru/articles.php?article_num=19240
http://isicad.ru/ru/articles.php?article_num=18755
http://isicad.ru/ru/articles.php?article_num=18722
http://isicad.ru/ru/authors.php?author=Виктор%20Чебыкин
На точность расчёта ещё влияет вид кривой, её кривизна.
Вот например показан эллипс, малая ось которого совпадает с точкой. При таком наклоне становится очевидным что площадь стремится к 100 мм, а кусочек эллипса вырождается в отрезок. Обратите внимание на точность вычислений, мне кажется она на много выше, хотя сам эллипс не такой уж и большой (на 2-м рисунке). Видимо самой программе легче такое считать.
Но тут возникает другой соблазн - разместить точку касания где то по середине между осями.
Тут уже очевидное становится невероятным. К чему будет стремится такая площадь? Ведь явно не 100 или 133. а к какому то определённому значению, интуитивно трудно понятному. :)
Цитата: YNA от 13.07.17, 11:15:25
К чему будет стремится такая площадь? Ведь явно не 100 или 133. а к какому то определённому значению, интуитивно трудно понятному. :)
В Вашем примере она будет стремиться к 100. Вот треугольник и его площадь.