Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2011.04.17;
Скачать: [xml.tar.bz2];

Вниз

Часть длины отрезка   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.005 c
15-1293625833
dmk
2010-12-29 15:30
2011.04.17
Можно ли сделать общий загрузчик


2-1291397443
Олег Крапивин
2010-12-03 20:30
2011.04.17
COM-технология и Дельфи 2009


1-1252242428
Ruzzz
2009-09-06 17:07
2011.04.17
Сериализация, хочу найти лучшее решения


15-1294238628
@!!ex
2011-01-05 17:43
2011.04.17
Синхронизация файлов


3-1256535483
JohnLemon
2009-10-26 08:38
2011.04.17
Помогите с SQL запросом....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский