Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±

    Как вычислить середину прямоугольника(квадрата)?

    Доброго времени суток пользователи Pro-Pawn
    Хотелось бы узнать, как же вычислить центр квадрата.

    Код:
    Точка А: 100.0, 100.0 (x1, y1) | minX, minY
    Точка B: 200.0, 200.0 (x2, y2) | maxX, maxY
    
    Координаты середины отрезка равны полусуммам координат его концов: если концы отрезка – A(x1; y1) и B(x2; y2), то координаты его середины – x3 = (x1 + x2) / 2; y3 = (y1 + y2) / 2;
    
    Перемещение: SetPlayerPosFindZ(x3, y3, 0);
    
    Расстояние между точками:
    new dist = floatround(floatsqroot((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));
    (c) OKStyle
    Но всё же я не пойму, как же это сделать, и как мне сделать в качестве примера, переместить туда игрока, в этот центр квадрата...

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±

    PHP код:
    stock GetCenterOfSquare(Float:x1Float:y1Float:x2Float:y2, &Float:cx, &Float:cy)
    {
        
    cx = (x1 x2) / 2.0;
        
    cy = (y1 y2) / 2.0;

    обновлено
    Последний раз редактировалось ziggi; 24.08.2016 в 16:17.

  3. #3
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Спасибо, но можете помочь сделать всё же, ибо у меня всё равно не получается....

    PHP код:
    CreateMapIconTest(playerid,I_Info[MassiVes[2][Id_LOD]][gCoords][0] , I_Info[MassiVes[2][Id_LOD]][gCoords][1] , I_Info[MassiVes[2][Id_LOD]][gCoords][2] , I_Info[MassiVes[2][Id_LOD]][gCoords][3]); 
    PHP код:
    stock CreateMapIconTest(playerid,Float:x1Float:y1Float:x2Float:y2)
    {
        return 
    SetPlayerMapIcon(x1 x2y1 y20.0) / 2.0;

    Как же поставить эту иконку то? Не получается совсем...

  4. #4
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    PHP код:
    stock GetCenterOfSquare(x1y1x2y2)
    {
        return 
    VectorSize(x1 x2y1 y20.0) / 2.0;

    Разве эта функция не вернёт лишь половину длины диагонали?

  5. #5
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Разве эта функция не вернёт лишь половину длины диагонали?
    Верно, попутал.
    PHP код:
    stock GetCenterOfSquare(Float:x1Float:y1Float:x2Float:y2, &Float:cx, &Float:cy)
    {
        
    cx = (x1 x2) / 2.0;
        
    cy = (y1 y2) / 2.0;

    Цитата Сообщение от Сергей Посмотреть сообщение
    Спасибо, но можете помочь сделать всё же, ибо у меня всё равно не получается....

    PHP код:
    CreateMapIconTest(playerid,I_Info[MassiVes[2][Id_LOD]][gCoords][0] , I_Info[MassiVes[2][Id_LOD]][gCoords][1] , I_Info[MassiVes[2][Id_LOD]][gCoords][2] , I_Info[MassiVes[2][Id_LOD]][gCoords][3]); 
    PHP код:
    stock CreateMapIconTest(playerid,Float:x1Float:y1Float:x2Float:y2)
    {
        return 
    SetPlayerMapIcon(x1 x2y1 y20.0) / 2.0;

    Как же поставить эту иконку то? Не получается совсем...
    PHP код:
    stock CreateMapIconTest(playeridFloat:x1Float:y1Float:x2Float:y2)
    {
        new
            
    Float:cx,
            
    Float:cy;

        
    GetCenterOfSquare(x1y1x2y2cxcy);
        return 
    SetPlayerMapIcon(cxcy0.0);


  6. 3 пользователя(ей) сказали cпасибо:
    Saibot (24.08.2016) _lizard (24.08.2016) Сергей (25.08.2016)
  7. #6
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Благодарю за помощь ziggi.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •