Уменшение количества внутренних методов за счёт методов получения матрицы поворота для веросора; исправления в методах проверки матрицы поворота; добавление методов вычисления поворота (turn3) по матрице поворота 3x3

This commit is contained in:
Andrey Pokidov 2026-04-03 02:22:11 +07:00
parent abf99a7126
commit 54c762da14
9 changed files with 448 additions and 351 deletions

View file

@ -21,6 +21,8 @@
<ItemGroup> <ItemGroup>
<ClCompile Include="main.c" /> <ClCompile Include="main.c" />
<ClCompile Include="affine3.c" /> <ClCompile Include="affine3.c" />
<ClCompile Include="printing_utils.c" />
<ClCompile Include="vector3_pair_difference.c" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\basic-geometry\basic-geometry.vcxproj"> <ProjectReference Include="..\basic-geometry\basic-geometry.vcxproj">
@ -29,6 +31,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="affine3.h" /> <ClInclude Include="affine3.h" />
<ClInclude Include="printing_utils.h" />
<ClInclude Include="vector3_pair_difference.h" />
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion> <VCProjectVersion>16.0</VCProjectVersion>

View file

@ -21,10 +21,22 @@
<ClCompile Include="affine3.c"> <ClCompile Include="affine3.c">
<Filter>Исходные файлы</Filter> <Filter>Исходные файлы</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="printing_utils.c">
<Filter>Исходные файлы</Filter>
</ClCompile>
<ClCompile Include="vector3_pair_difference.c">
<Filter>Исходные файлы</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="affine3.h"> <ClInclude Include="affine3.h">
<Filter>Файлы заголовков</Filter> <Filter>Файлы заголовков</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="printing_utils.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="vector3_pair_difference.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

Internal server error - Personal Git Server: Beyond coding. We Forge.

500

Internal server error

Forgejo version: 11.0.1+gitea-1.22.0

@ -9,7 +9,9 @@
#include <time.h> #include <time.h>
#endif // _WINDOWS_ #endif // _WINDOWS_
#include "printing_utils.h"
#include "vector3_pair_difference.h" #include "vector3_pair_difference.h"
#include "affine3.h"
typedef struct { typedef struct {
BGC_FP32_Turn3 versor1, versor2, result; BGC_FP32_Turn3 versor1, versor2, result;
@ -132,13 +134,48 @@ int main() {
} }
*/ */
void test_fp32_quaternion_set_matrix()
{
BGC_FP32_Turn3 turn;
BGC_FP32_Matrix3x3 rotation;
BGC_FP32_Quaternion quaternion;
#include "affine3.h" bgc_fp32_turn3_set_rotation(&turn, 1.0f, 1.0f, 1.0f, 120.0f, BGC_ANGLE_UNIT_DEGREES);
bgc_fp32_turn3_get_rotation_matrix(&rotation, &turn);
if (bgc_fp32_quaternion_set_rotation_matrix(&quaternion, &rotation) == BGC_FAILURE) {
printf("Failed\n");
return;
}
print_fp32_quaternion(&quaternion);
print_fp32_quaternion(&turn._versor);
}