|
Вопрос # 5 791/ вопрос решён / |
|
Здравствуйте! Уважаемые эксперты!
Есть формула
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
L:= k/d;
x0 := (x11+L*x22)/(1+L);
y0 := (y11+L*y22)/(1+L);
где х1 и у1 - начальная координата линии
х2 и у2 - конечная координата линии
k - const
эта формула дает мне координаты третей точки на этой линии и у меня новая линия с координатами х1,у1 и х0,у0. Вопрос в том что линий много чем болше линия тем больше получается моя новая линия, а они должны быть все одинаковой длины от координаты х1,у1 до х0,у0.
Помогите кто знает переделать формулу.
С большим уважением!
 |
Вопрос задал: senyor (статус: Посетитель)
Вопрос отправлен: 2 декабря 2011, 13:38
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 22; последнее сообщение — 9 декабря 2011, 10:01; участников в обсуждении: 3.
Страницы: [1] [2] [Следующая »]
|
min@y™ (статус: Доктор наук), 2 декабря 2011, 13:56 [#1]:
Ну, понятно, d - это расстояние между точками (длина отрезка). А чо такое L, x11, x22, y11, y22?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
senyor (статус: Посетитель), 2 декабря 2011, 14:24 [#2]:
Ссори не х11 а х1, не у11 а у1
L - лямбда при помощи которой нахожу длину новой точки
|
|
min@y™ (статус: Доктор наук), 2 декабря 2011, 14:38 [#3]:
Нарисуй, что ты хочешь получить в итоге (с обозначением точек и расстояний). А то чой-то не въеду.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
senyor (статус: Посетитель), 2 декабря 2011, 15:16 [#4]:
не получается добавить рисунок к этому вопросу создам заново вопрос вместе с прикрепленным файлом
|
|
min@y™ (статус: Доктор наук), 2 декабря 2011, 15:37 [#5]:
Цитата (senyor):
не получается добавить рисунок к этому вопросу создам заново вопрос вместе с прикрепленным файлом
Зря. Выложил бы куданить на файлопомойку да и всё.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
senyor (статус: Посетитель), 2 декабря 2011, 15:39 [#6]:
как это сделать подскажи пож
|
|
senyor (статус: Посетитель), 2 декабря 2011, 15:41 [#7]:
я нарисовал на бумаге и отсканировал
|
|
senyor (статус: Посетитель), 2 декабря 2011, 15:49 [#8]:
как ты вставил изображение в вопросе 5750
|
|
min@y™ (статус: Доктор наук), 2 декабря 2011, 15:54 [#9]:
Цитата (senyor):
как ты вставил изображение в вопросе 5750
У тебя тут таких прав нету. Просто залей на radikal.ru, а ссылку сюда запость.
З.Ы. У меня через 5 минут рабочий день кончается, домой приду - посмотрю.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
senyor (статус: Посетитель), 2 декабря 2011, 15:57 [#10]:
iman_yerlan@mail.ru мой адрес скинь свой я тебе закину
|
|
min@y™ (статус: Доктор наук), 2 декабря 2011, 19:08 [#11]:
Цитата (senyor):
iman_yerlan@mail.ru мой адрес скинь свой я тебе закину
Оно мне надо?
Залей на файлопомойку, не хочу светить свой е-мэйл.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 5 декабря 2011, 08:19 [#13]:
Расстояние, ты пишешь, должно быть одинаковым. А чему оно должно быть равно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Drinkenz (статус: 1-ый класс), 5 декабря 2011, 11:52 [#14]:
Искомая длина отрезка L у него
|
|
Drinkenz (статус: 1-ый класс), 5 декабря 2011, 12:12 [#15]:
Можно попробовать так например:
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
L:=d/0.6;
if d=0 then begin
cx:=0;
end
else
begin
cx:=(x2-x1)/d;
end;
if d=0 then begin
cy:=0;
end
else
begin
cy:=(y2-y1)/d
end;
x0:=x1+L*cx;
y0:=y1+L*cy;
|
|
senyor (статус: Посетитель), 5 декабря 2011, 16:05 [#16]:
Учитывая мою формулу, где k - const = 0.6
Если х1=5 у1=5 х2=7 у2=7 то получиться результат приблизительно х0 = 5,22; у0 = 5,22
Если х1=50 у1=50 х2=70 у2=70 то получиться результат приблизительно х0 = 5,24; у0 = 5,24
А нужно чтобы при любых х1,у1; х2,у2; результат получался бы одинаковым. Надо сделать такую формулу т.е во вторм варианте х0 = 5,22 и у0 = 5,22
т.к. координаты х1 = 13275451.93 у1 = 5304308.518
х2 = 13275466.01 у2 = 5304287.43, то сами понимаете разница поолучается большая
как сделать формулу, чтобы при изменении координат длину давала одинаковую
|
|
senyor (статус: Посетитель), 5 декабря 2011, 16:50 [#17]:
Возьми любые х1 у1 х2 у2 посчитав получиться какой-нибудь результат потом возьми теже (х1 у1 х2 у2) * 10 результат получиться отличающийся от первых х1 у1 х2 у2
Нужно чтобы при подстановки любых цифр результат был один и тот же
К примеру
1-Вариант
х1=5 у1=5 х2=7 у2=7 то получиться результат приблизительно х0 = 5,22; у0 = 5,22
2-Вариант
Если х1=50 у1=50 х2=70 у2=70 то получиться результат приблизительно х0 = 5,24; у0 = 5,24 (а нужна формула чтобы и во втором варианте давала бы результат не 5,24 а 5,22)
|
|
Drinkenz (статус: 1-ый класс), 6 декабря 2011, 02:01 [#18]:
1-Вариант
х1=5 у1=5 х2=7 у2=7 то получиться результат приблизительно х0 = 5,22; у0 = 5,22
по твоей формуле у меня получается 5,35
по моей формуле у меня получается 5,15
2-Вариант
Если х1=50 у1=50 х2=70 у2=70 то получиться результат приблизительно х0 = 5,24; у0 = 5,24
по твоей формуле у меня получается 50,41
по моей формуле у меня получается 50,02.
Я не смогу тебе помочь.
|
|
senyor (статус: Посетитель), 6 декабря 2011, 07:14 [#19]:
Неважно, если по твоей формуле 1-Вариант
5,15 -5 то длина получается 0,15
2-Вариант
50,02-50 =0,02 - длина линии
Нужна формула чтобы в обоих вариантах длина линни была одинакова
|
|
senyor (статус: Посетитель), 6 декабря 2011, 13:32 [#20]:
Нашел ура.
Всем кто помогал спасибо
min@y™ и Drinkenz огромное спасибо
Кому нужна формула обращайтесь
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|