Сейчас 19:59:02 Пятница, 27 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Как найти точку посередине между двумя другими?
Revolver_45Дата: Среда, 02 Февраля 2011, 19:34:13 | Сообщение # 1
3 уровень
Группа: Проверенные
Сообщений: 78
Награды: 0
Репутация: 13
Блокировки:
Как найти точку ровно посередине между двумя другими точками, которые имеют произвольные координаты, например между кастующим юнитом и целью заклинания?
Знаю, что это элементарная геометрия 5го класса и всё такое. Просто покажите, пожалуйста.

Добавлено (02-02-2011, 19:34)
---------------------------------------------
И второй вопрос, похожий - как найти ту же точку, но в дуге?




Сообщение отредактировал Revolver_45 - Среда, 02 Февраля 2011, 19:34:41
 

SirNikolasДата: Среда, 02 Февраля 2011, 19:36:07 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Revolver_45)
Знаю, что это элементарная геометрия 5-го класса и всё такое.
Правильно.
x3 = (x1 + x2) / 2
y3 = (y1 + y2) / 2


 

Revolver_45Дата: Среда, 02 Февраля 2011, 19:39:16 | Сообщение # 3
3 уровень
Группа: Проверенные
Сообщений: 78
Награды: 0
Репутация: 13
Блокировки:
SirNikolas, спасибо. Просто, когда я учился в школе, то у меня по геометрии было всегда 2 с минусом :D
А как найти эту же точку, но не в прямой, а в дуге?




Сообщение отредактировал Revolver_45 - Среда, 02 Февраля 2011, 19:40:42
 

SirNikolasДата: Среда, 02 Февраля 2011, 19:41:51 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Полярным смещением на угол, равный среднему арифметическому двух известных углов.

 

Manko_OДата: Среда, 02 Февраля 2011, 19:43:22 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
local unit u
local unit u2
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real x2 = GetUnitX(u2)
local real y2 = GetUnitY(u2)
local real x3
local real y3
local integer dis = R2I(SquareRoot((x-x2)*(x-x2)+(y-y2)*(y-y2)))/2
local real a = Atan2(y2-y,x2-x)
set x3 = GetUnitX(u)+dis*Cos(a)
set y3 = GetUnitX(u)+dis*Sin(a)

Добавлено (02-02-2011, 19:43)
---------------------------------------------

Quote
set y3 = GetUnitY(u)+dis*Sin(a)

Ошибся)
 

Revolver_45Дата: Среда, 02 Февраля 2011, 19:45:02 | Сообщение # 6
3 уровень
Группа: Проверенные
Сообщений: 78
Награды: 0
Репутация: 13
Блокировки:
всем спасибо за быстрые ответы, всем плюсаны.
Тему можно закрыть.


 

SirNikolasДата: Среда, 02 Февраля 2011, 19:46:34 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Manko_O, зачем здесь-то полярки? :)
Code
local real x3 = (x1 - x2) / 2
local real y3 = (y1 + y2) / 2


 

romaN-1998Дата: Четверг, 03 Февраля 2011, 00:25:39 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
на GUI:

Set variable
Set Point1 = Position of unit 1
Set Point2 = Position of unit 2
Set CenterOfPoints = (Distance between Point1 and Point2) / 2.00

CenterOfPoints и будет твоим центром, в События поставь: Pereodic Event - Every 0.01 seconds

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz