Текущий архив: 2011.04.17;
Скачать: CL | DM;
Вниз
Часть длины отрезка Найти похожие ветки
← →
Sasha_234 (2009-08-07 23:30) [0]Уважаемые мастера.
Имеется отрезок с 4 координатами.
AX,AY -начало
BX,BY -конец.
Известен угол наклона отрезка.
Расстояние отрезка вычисляется так:
d = sqrt((AX-BX)^2 + (AY-BY)^2);
Как отложить под тем же углом точку,
равную 10% от d.
Спасибо.
← →
Дмитрий Белькевич (2009-08-07 23:50) [1]Представляем дельту по X и по Y: AX-BX, AY-BY. Берём по 10% от этих чисел, добавляем (или, симметрично, отнимаем) к соответсвующим координатам начала (конца) отрезка.
Кажется так, если не путаю...
Знаки только нужно посмотреть, что бы точка в нужном квадранте лежала и с отрезка не уехала.
← →
Inovet © (2009-08-08 06:46) [2]> [0] Sasha_234 (07.08.09 23:30)
> Уважаемые мастера.
> Имеется отрезок с 4 координатами.
> AX,AY -начало
> BX,BY -конец.
> Известен угол наклона отрезка.
> Расстояние отрезка вычисляется так:
> d = sqrt((AX-BX)^2 + (AY-BY)^2);
> Как отложить под тем же углом точку,
> равную 10% от d.
> Спасибо.
Кошмар какой. Это откуда такие формулировки берутся?
← →
MBo © (2009-08-08 07:53) [3]X = AX + t * (BX - AX), где t - например, 10%
аналогично для Y
← →
Anatoly Podgoretsky © (2009-08-08 12:41) [4]> MBo (08.08.2009 07:53:03) [3]
Точно от XY а не от длины отрезка?
← →
Дмитрий Белькевич (2009-08-08 13:41) [5]
> Точно от XY а не от длины отрезка?
От дельты по X и Y, как и у MBo. Единственное - нужно смотреть, как отрезок направлен (4 варианта - по 4-м квадрантам), что бы вот здесь: AX + t верный знак поставить.
← →
Дмитрий Белькевич (2009-08-08 13:45) [6]
> Единственное - нужно смотреть, как отрезок направлен (4
> варианта - по 4-м квадрантам), что бы вот здесь: AX + t
> верный знак поставить.
Подумалось... Возможно вот это: (BX - AX) само знак учтёт...
← →
Юрий Зотов © (2009-08-09 11:42) [7]> Дмитрий Белькевич (08.08.09 13:45) [6]
Знак будет учтен автоматически, ничего дополнительного не нужно.
← →
oldman © (2009-08-10 11:32) [8]Я офигеваю.
Система координат, надеюсь, Декартова.
Так 10% от длины и будет 10% от разности координат начала и конца отрезка.
ЗЫ: Почему программисты не хотят помнить математику (особенно геометрию) курса средней школы, а?
← →
TUser © (2009-08-11 21:58) [9]
> Почему программисты не хотят помнить математику (особенно
> геометрию) курса средней школы, а?
Потому что программы средней школы не предназначены для обучения человека чему-нибудь кроме усидчивости, подчинения учителю и прочих полезных навыков. Загляните в любой школьный учебник.
← →
Дмитрий Белькевич (2009-08-11 22:34) [10]
> ЗЫ: Почему программисты не хотят помнить математику (особенно
> геометрию) курса средней школы, а?
Не уверен, кстати, на 100% что задача решаема в рамках школьного курса.
Как её геометрически решить так сразу и не вспомню.
Я понимаю, что задача достаточно очевидна, но очевидности тоже нужно доказывать.
← →
MBo © (2009-08-12 07:19) [11]>Не уверен, кстати, на 100% что задача решаема в рамках школьного курса.
В школьном курсе пока еще преподают векторы, и задача относится к теме - умножение вектора на скаляр (число)
http://school-collection.edu.ru/catalog/rubr/c38dad01-6bf9-468e-bdc9-d146771a8552/109882/
← →
Дуб © (2009-08-12 10:26) [12]
> Не уверен, кстати, на 100% что задача решаема в рамках школьного
> курса.
> Как её геометрически решить так сразу и не вспомню.
через построения что ли? Теорема Фаллеса.
← →
Дмитрий Белькевич (2009-08-12 12:37) [13]
> умножение вектора на скаляр (число)
School-collection.edu.ru у меня не открывается - говорит иностранный пользователь.
Увидел в другом месте:
a, b: TVector;
k: Integer;
a * k = b
http://www.pm298.ru/reshenie/vektor3.php
"При умножении вектора на скаляр k получается вектор , модуль которого равен модулю вектора , умноженному на k, т. е. b = ak. Направления векторов и совпадают, если k > 0, и они противоположны, если k < 0"
Как от этого к координатам перейти?
Вот человек с модулями: "d = sqrt((AX-BX)^2 + (AY-BY)^2)" и мучается (называя это "расстоянием", ну да ладно, оставим).
Насколько я помню, следующий шаг - переход к кординатам в школе не давался. В общем виде всегда только писалось, [3] не давали. А сверх того, что давали, школьник знать не обязан ;)
А как из теоремы Фаллеса следует [3]?
← →
Дуб © (2009-08-12 12:59) [14]> А как из теоремы Фаллеса следует [3]?
А должно? Я про построения. протсо не понятно, что именно вкладывается в поняттие - решить геометрически. Для греков это было бы построение, а там т.Фаллеса.
Но вообще-то, она и тут рулит тоже. Суть простая. Имеется отрезок, имеется прямая проходящая через один конец параллельно оси. Из второй вершины опускаем перпендикуляр на нее. Теперь выбрав точку на отрезке, построим перпендикуляр. По т.Фаллеса отношения двух отрезков получившихся на исходном и на прямой(между вершиной и первым перпендикуляром) одинаковые. значит доостаточно разбить отрезок на прямой в нужной пропорции. через это получается одна координата. Ну и вторая через это уже автоматом также. Длина отрезка (BX-AX)*t - это добавка к координате AX. Все.
← →
oldman © (2009-08-12 14:13) [15]
> Дмитрий Белькевич (11.08.09 22:34) [10]
>
> > ЗЫ: Почему программисты не хотят помнить математику (особенно
>
> > геометрию) курса средней школы, а?
>
>
> Не уверен, кстати, на 100% что задача решаема в рамках школьного
> курса.
> Как её геометрически решить так сразу и не вспомню.
>
> Я понимаю, что задача достаточно очевидна, но очевидности
> тоже нужно доказывать.
Из концов отрезка и точки 10% проводим перпендикуляры на оси.
Что получаем? Правильно - подобные треугольники.
У подобных треугольников отношения сторон одинаковы, поэтому
если гипотенуза малого равна 10% от гипотенузы большого, то
катеты (то есть координаты) тоже 10%.
Просто голову включить и все.
← →
Дмитрий Белькевич (2009-08-12 14:40) [16]
> Что получаем? Правильно - подобные треугольники.
Я вот тоже склонялся ближе к подобию. Фаллес здесь, если и работает, то построения сложнее.
← →
oldman © (2009-08-12 18:27) [17]
> Дмитрий Белькевич (12.08.09 14:40) [16]
Ни подобие, ни Фаллес не нужны.
Нужны мозги. Видимо пропитые автором до сдачи лабы.
← →
Дуб © (2009-08-12 18:49) [18]> Дмитрий Белькевич (12.08.09 14:40) [16]
>
> > Что получаем? Правильно - подобные треугольники.
>
>
> Я вот тоже склонялся ближе к подобию. Фаллес здесь, если
> и работает, то построения сложнее.
Я в шоке. Подобие и Фаллес - это близнецы братья. Нельзя говорить об одном и не говорить о другом. Это - одно и тоже. ОДНО и ТОЖЕ. Кто этого не понимает, тот ни хрена вообще не понимает в геометрии. Вообще. Ни хрена.
> Ни подобие, ни Фаллес не нужны.
> Нужны мозги. Видимо пропитые автором до сдачи лабы.
Нужны. Оба два. Кто этого не понимет - тот пропил мозги еще не получив их. Возможно в школе.
← →
Дуп (2009-08-12 19:00) [19]Извините накипело. Но увидеть гуру, который сам в 3-х соснах блудит при этом свысока рассуждая - это и дуба выедет на раско.
> oldman © (10.08.09 11:32) [8]
> Я офигеваю.
Ты сам-то школьную геометрию изучи, потом фигей. Невежда.
← →
Дуп (2009-08-12 19:02) [20]> TUser © (11.08.09 21:58) [9]
Ну а тебе я ответил уже. Кто видит фигу - тот видит фигу. И ученики тут ни при чем.
← →
Дуп (2009-08-12 19:03) [21]> TUser © (11.08.09 21:58) [9]
Ну а тебе я ответил уже. Кто видит фигу - тот видит фигу. И учебники тут ни при чем.
← →
Дмитрий Белькевич (2009-08-13 00:19) [22]
> Ни подобие, ни Фаллес не нужны.Нужны мозги. Видимо пропитые
> автором до сдачи лабы.
Ну с топикстартером то всё понятно по первому же письму. Терминология хромая, мягко говоря.
> Я в шоке. Подобие и Фаллес - это близнецы братья. Нельзя
> говорить об одном и не говорить о другом. Это - одно и тоже.
> ОДНО и ТОЖЕ. Кто этого не понимает, тот ни хрена вообще
> не понимает в геометрии. Вообще. Ни хрена.
Не стоит плодить сущности сверх необходимого, мне так кажется.
Так как ветка, думаю, полностью исчерпана и плавно, но верно, переходит на личности, разумно её закрыть.
← →
Дуб © (2009-08-13 03:58) [23]> Не стоит плодить сущности сверх необходимого, мне так кажется.
А они и не плодятся ни разу. Это и есть та самая школьня геометрия. И как видно из дальнейшего, не понимет и не знает ее не только топикстартер но и яряд советчиков, хотя при этом применяет нелицеприятные эпитеты к топикстартеру, а они в полной мере относятся и к ним.
← →
Thrashead (2009-09-08 12:15) [24]Привет, знатоки! Если я верно понял задачу, то требуется найти некую точку С (CX, CY), которая делит исходный отрезок AB на два (AC и CB) в отношении 1:9, т.е. CB=9*AC.
Позвольте предложить вариант решения:
1) Длина отрезка AB:
|AB| = Sqrt((BX-AX)^2+(BY-AY)^2);
2) Угол наклона отрезка AB к оси абсцисс (OX):
cos(alpha) = (BX-AX)/|AB|;
sin(alpha) = (BY-AY)/|AB|;
3) Длина отрезка AC:
|AC| = k*|AB|; в нашем случае k=0.1;
4) Координаты точки C:
CX = AX+|AC|*cos(alpha) = AX+k*|AB|*cos(alpha);
CY = AY+|AC|*sin(alpha) = AY+k*|AB|*sin(alpha);
← →
Thrashead (2009-09-08 12:27) [25]4) Координаты точки C:
CX = AX+|AC|*cos(alpha) = AX+k*|AB|*cos(alpha);
CY = AY+|AC|*sin(alpha) = AY+k*|AB|*sin(alpha);
Можно упростить:
CX = AX+k*(BX-AX);
CY = AY+k*(BY-AY);
← →
MBo © (2009-09-08 12:28) [26]>Thrashead
Рассуждения верны.
Только модуль длины в последних уравнениях сокращается, и считать его не нужно.
В результате получится то же самое, что в [3]
← →
Thrashead (2009-09-08 13:52) [27]MBo. Абсолютно согласен.
Я ступил малость. Решил расписать подробно. Позже заметил, что ранее уже было написано фактически то же самое.
← →
Franzy (2009-09-08 15:57) [28]Мы, прикладные математики, обычно пишем так: (1-alpha)*A+alpha*B.
То бишь, в данном случае:
CX := 0.9*AX+0.1*BX;
CY := 0.9*AY+0.1*BY;
Как видно, ни углы, ни модули вычислять надобности нет.
Страницы: 1 вся ветка
Текущий архив: 2011.04.17;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.005 c