Как сделать FOV на игрововой рисокве(круг)

Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
как сделать FOV на игрововой рисокве(круг). Желательно не круг, а круг из точек
 
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
350
Реакции[?]
48
Поинты[?]
15K
C++:
void DrawCircle(float x, float y, float r, int Color, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, Color, ".");
        PointX = X; PointY = Y;
    }
}
 
Трахов
Пользователь
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
490
Реакции[?]
87
Поинты[?]
2K
C++:
void DrawCircle(float x, float y, float r, int cLine, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, cLine, ".");
        PointX = X; PointY = Y;
    }
}
Не легче было вместо 3.14159265358979323846264 сделать просто M_PI или PI в каждом сдк по разному.
Так де есть M2_PI ( 3.14 сразу умноженное на 2 ).
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
C++:
void DrawCircle(float x, float y, float r, int Color, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, Color, ".");
        PointX = X; PointY = Y;
    }
}
Тут если я не ошибаюсь нужно имгуй подключать?
 
Пользователь
Статус
Оффлайн
Регистрация
4 Авг 2017
Сообщения
262
Реакции[?]
42
Поинты[?]
3K
Пользователь
Статус
Оффлайн
Регистрация
17 Июл 2021
Сообщения
462
Реакции[?]
118
Поинты[?]
10K
Желательно не круг, а круг из точек
Друг, возможно я открою тебе секрет, но ты чисто физически не сможешь нарисовать круг. Любой круг, отрисованный на экране монитора - является 65537-угольником, который (ого вдруг!!) состоит из точек. Да, я душнила. Бтв, реализация Biven через буквально точку (как текст) это :roflanEbalo:. Юзай лучше DrawLine.
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
Друг, возможно я открою тебе секрет, но ты чисто физически не сможешь нарисовать круг. Любой круг, отрисованный на экране монитора - является 65537-угольником, который (ого вдруг!!) состоит из точек. Да, я душнила. Бтв, реализация Biven через буквально точку (как текст) это :roflanEbalo:. Юзай лучше DrawLine.
Пишет идентификатор не определен. Нужно добавить имгуи?
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Онлайн
Регистрация
15 Апр 2020
Сообщения
320
Реакции[?]
79
Поинты[?]
0
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
на кой черт ты спрашиваешь про имгуи, если тред "на игровой рисовке" и тебе дали решение?
я хз, я дурачек. Туплю моментами. Подскажи, слишком добрый человек, можно сделать вот так, что бы идентификатор DrawString был объявлен?
C++:
void DrawString(//тут параметры, переменный, я хз как правильно назвать. Ну думаю меня поняли)
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я хз, я дурачек. Туплю моментами. Подскажи, слишком добрый человек, можно сделать вот так, что бы идентификатор DrawString был объявлен?
C++:
void DrawString(//тут параметры, переменный, я хз как правильно назвать. Ну думаю меня поняли)
drawstring берется с структуры рисовки игры...
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
350
Реакции[?]
48
Поинты[?]
15K
Друг, возможно я открою тебе секрет, но ты чисто физически не сможешь нарисовать круг. Любой круг, отрисованный на экране монитора - является 65537-угольником, который (ого вдруг!!) состоит из точек. Да, я душнила. Бтв, реализация Biven через буквально точку (как текст) это :roflanEbalo:. Юзай лучше DrawLine.
Так ему нужно точками, а не линиями, с точками и предложил пример
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
350
Реакции[?]
48
Поинты[?]
15K
а что делать с этим DrawString. Куда его всучить, подскажи пожалуйста
В классе IFont есть эти виртуальные функции. И посмотри в сурсах как выводят текст на экран через игровые DrawString
C++:
class IFont
{
public:
    virtual void Function0() = 0;
    virtual void Function1() = 0;
    virtual void Function2() = 0;
    virtual bool Load(const char* pXMLFile) = 0;
    virtual void Function4() = 0;
    virtual void Function5() = 0;;
    virtual void Function6() = 0;
    virtual void DrawString(float x, float y, const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void DrawStringW(float x, float y, float z, const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void Function9() = 0;
    virtual Vec2 GetTextSize(const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual Vec2 GetTextSizeW(const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual int GetTextLength(const char* szwMsg, const bool bASCIIMultiLine) = 0;
    virtual int GetTextLengthW(const wchar_t* szwMsg, const bool bASCIIMultiLine) = 0;
};
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
В классе IFont есть эти виртуальные функции. И посмотри в сурсах как выводят текст на экран через игровые DrawString
C++:
class IFont
{
public:
    virtual void Function0() = 0;
    virtual void Function1() = 0;
    virtual void Function2() = 0;
    virtual bool Load(const char* pXMLFile) = 0;
    virtual void Function4() = 0;
    virtual void Function5() = 0;;
    virtual void Function6() = 0;
    virtual void DrawString(float x, float y, const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void DrawStringW(float x, float y, float z, const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void Function9() = 0;
    virtual Vec2 GetTextSize(const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual Vec2 GetTextSizeW(const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual int GetTextLength(const char* szwMsg, const bool bASCIIMultiLine) = 0;
    virtual int GetTextLengthW(const wchar_t* szwMsg, const bool bASCIIMultiLine) = 0;
};
ок, спасибо большое
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
В классе IFont есть эти виртуальные функции. И посмотри в сурсах как выводят текст на экран через игровые DrawString
C++:
class IFont
{
public:
    virtual void Function0() = 0;
    virtual void Function1() = 0;
    virtual void Function2() = 0;
    virtual bool Load(const char* pXMLFile) = 0;
    virtual void Function4() = 0;
    virtual void Function5() = 0;;
    virtual void Function6() = 0;
    virtual void DrawString(float x, float y, const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void DrawStringW(float x, float y, float z, const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void Function9() = 0;
    virtual Vec2 GetTextSize(const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual Vec2 GetTextSizeW(const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual int GetTextLength(const char* szwMsg, const bool bASCIIMultiLine) = 0;
    virtual int GetTextLengthW(const wchar_t* szwMsg, const bool bASCIIMultiLine) = 0;
};
Можешь пожалуйста примеры привести в каких сурсах искать
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
C++:
void DrawCircle(float x, float y, float r, int Color, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, Color, ".");
        PointX = X; PointY = Y;
    }
}
А как уменьшить его размер и кол-во точек?
 
Сверху Снизу