Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Кибор и C/C++

Страниц (3): « 1 2 [3]
 

21. Kibor - 13 Декабря, 2023 - 04:35:50 - перейти к сообщению
А кнопки не разрешать смайлики нету?
Галка внизу.
22. Gorago - 11 Февраля, 2024 - 07:09:29 - перейти к сообщению
Пытаюсь разораться с dll всё собирается но в киборе не работает, выводит 0. Помогите разобраться

С++
С++ (Отобразить)


Кибор (Отобразить)
23. Zireael - 11 Февраля, 2024 - 08:24:22 - перейти к сообщению
Если передаёте целое число, то функция int должна принимать.
CODE:
get_direction(int x_start, int y_start, int x_end, int y_end)
24. Gorago - 11 Февраля, 2024 - 09:56:24 - перейти к сообщению
Zireael , увы не помогло
25. Kibor - 11 Февраля, 2024 - 10:04:54 - перейти к сообщению
В Кибор проблема с возратом дробного числа.
А вы возвращаете дробное.
Можете сделать костыль.
 Цитата:
double angle = atan2(dy, dx) * 180.0 / M_PI;
на
double angle = (atan2(dy, dx) * 180.0 / M_PI)*100000;


 Цитата:
int result = get_direction(111, 111, 333, 333);
на
double result = get_direction(111, 111, 333, 333)/100000;
26. Zireael - 11 Февраля, 2024 - 10:37:02 - перейти к сообщению
Оба варианта работают.
CODE:
extern "C" __declspec(dllexport) int get_direction(int x_start, int y_start, int x_end, int y_end)
{
// Convert from isometric coordinates to 2D coordinates
double x_start_2d = x_start - y_start;
double y_start_2d = (x_start + y_start) / 2;
double x_end_2d = x_end - y_end;
double y_end_2d = (x_end + y_end) / 2;

// Compute the direction vector in 2D space
double dx = x_end_2d - x_start_2d;
double dy = y_end_2d - y_start_2d;

// Compute the angle of the direction vector in degrees using C Standard Library's atan2
double angle = atan2(dy, dx) * 180.0 / M_PI;

// Convert the result to int before returning
return static_cast<int>(angle);
}

CODE:
// вызов функции из кибор
int result = get_direction(111, 111, 333, 333);


CODE:
extern "C" __declspec(dllexport) int get_direction2(double *x_start, double *y_start, double *x_end, double *y_end)
{
// Convert from isometric coordinates to 2D coordinates
double x_start_2d = *x_start - *y_start;
double y_start_2d = (*x_start + *y_start) / 2;
double x_end_2d = *x_end - *y_end;
double y_end_2d = (*x_end + *y_end) / 2;

// Compute the direction vector in 2D space
double dx = x_end_2d - x_start_2d;
double dy = y_end_2d - y_start_2d;

// Compute the angle of the direction vector in degrees using C Standard Library's atan2
double angle = atan2(dy, dx) * 180.0 / M_PI;

// Convert the result to int before returning
return static_cast<int>(angle);
}

CODE:
// вызов функции из кибор
double x_start = 111;
double y_start = 111;
double x_end = 333;
double y_end = 333;
int result = get_direction2(address(#x_start), address(#y_start), address(#x_end), address(#y_end));
27. Gorago - 11 Февраля, 2024 - 13:22:52 - перейти к сообщению
Zireael , Второй вариант идеальный вышел, спасибо, что исправили ошибки
28. Redear - 18 Февраля, 2024 - 16:39:08 - перейти к сообщению
доброй ночи, подскажите на какой версии vs у вас компилируются библиотеки?
я скачал 2022 и скомпилированные библиотеки у меня кибор в упор не видит
29. Redear - 19 Февраля, 2024 - 01:36:09 - перейти к сообщению
разобрался

Powered by ExBB FM 1.0 Final