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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±

    небольшая математика

    PHP код:
                MinY
                 v
          MinX 
    > *-------------
                 |            |
                 |  
    gangzone  |
                 |   
    center   |
                 |            |
                 -------------* < 
    MaxX
                              
    ^
                              
    MaxY 
    имея gangzone center и радиус необходимого прямоугольника возможно ли вычислить координаты минимума и максимума ?
    если да, то по какой формуле ;)

  2. #2
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    прямоугольника наврятли, а квадрата вроде бы можно как то...
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    PHP код:
                MinY
                 v
          MinX 
    > *-------------
                 |            |
                 |  
    gangzone  |
                 |   
    center   |
                 |            |
                 -------------* < 
    MaxX
                              
    ^
                              
    MaxY 
    имея gangzone center и радиус необходимого прямоугольника возможно ли вычислить координаты минимума и максимума ?
    если да, то по какой формуле ;)
    Зная один "радиус" ты построишь квадрат, не более.
    А вообще, если ты знаешь длину и ширину, то в чем проблема узнать то?

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

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    PHP код:
    new AreaID;
    AreaID CreateDynamicRectangle(minx,miny,maxx,maxy,-1,-1,-1);
    IsPlayerInDynamicArea(playeridAreaID); 
    учитесь пользоваться всеми функциями стримера.
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  5. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от Alpano Посмотреть сообщение
    PHP код:
    new AreaID;
    AreaID CreateDynamicRectangle(minx,miny,maxx,maxy,-1,-1,-1);
    IsPlayerInDynamicArea(playeridAreaID); 
    учитесь пользоваться всеми функциями стримера.
    Как раз таки мэн просит вычислить minx,miny,maxx,maxy из своей точки и радиуса вокруг неё))
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    PHP код:
    /*

                maxY
                 v      a
          maxX > *-------------
                 |            |
                 |  gangzone  |
            b    |   center   |
                 |            |
                 -------------* < minX
                              ^
                              minY

    */

    main()
    {
        new
            
    FloatcenterX 0.0,
            
    FloatcenterY 0.0 ;
            
        new
            
    Float50.0,
            
    Float27.0 ;
            
        new
            
    FloatminX centerX - ( ),
            
    FloatminY centerY - ( ),
            
            
    FloatmaxX centerX + ( ),
            
    FloatmaxY centerY + ( ) ;
        

        
    printf"(%f, %f)\n(%f, %f)"minXminYmaxXmaxY );
        

    Зная длину и ширину можно вычислить таким образом.
    a и b это длина и ширина

  7. Пользователь сказал cпасибо:
    Batya_Montes (18.05.2017)
  8. #7
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от Seregamil Посмотреть сообщение
    PHP код:
    /*

                maxY
                 v      a
          maxX > *-------------
                 |            |
                 |  gangzone  |
            b    |   center   |
                 |            |
                 -------------* < minX
                              ^
                              minY

    */

    main()
    {
        new
            
    FloatcenterX 0.0,
            
    FloatcenterY 0.0 ;
            
        new
            
    Float50.0,
            
    Float27.0 ;
            
        new
            
    FloatminX centerX - ( ),
            
    FloatminY centerY - ( ),
            
            
    FloatmaxX centerX + ( ),
            
    FloatmaxY centerY + ( ) ;
        

        
    printf"(%f, %f)\n(%f, %f)"minXminYmaxXmaxY );
        

    Зная длину и ширину можно вычислить таким образом.
    a и b это длина и ширина
    Занеси этот код в раздел функций по братски)) пригодится ещё может, а то потеряю потом..
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  9. #8
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Элементарно же.
    Вот готовая функция:
    PHP код:
    GetBoundsOfGangZone(Float:cxFloat:cyFloat:widthFloat:height, &Float:x1, &Float:y1, &Float:x2, &Float:y2)
    {
        
    x1 cx - (width 2.0);
        
    x2 cx + (width 2.0);
        
    y1 cy - (height 2.0);
        
    y2 cy + (height 2.0);

    Ну и заодно обратна функция, которая узнаёт центр:
    PHP код:
    GetCenterOfGangZone(Float:MinXFloat:MinYFloat:MaxXFloat:MaxY, &Float:X, &Float:Y)
    {
        
    = (MinX MaxX) / 2;
        
    = (MinY MaxY) / 2;

    Последний раз редактировалось Nexius_Tailer; 18.05.2017 в 11:11.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  10. Пользователь сказал cпасибо:
    Batya_Montes (18.05.2017)
  11. #9
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Всем спасибо, выручили.

 

 

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

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

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

Ваши права

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