-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdk_line.c
More file actions
97 lines (75 loc) · 1.56 KB
/
dk_line.c
File metadata and controls
97 lines (75 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "dk_line.h"
#include <stdlib.h>
#include <math.h>
Point *copyPointWithPoint(Point *aPoint);
Line *createLine(Point *A, Point *C)
{
Line *theResult = NULL;
if (NULL != A && NULL != C)
{
theResult = (Line *)malloc(sizeof(Line));
if (NULL != theResult)
{
theResult->A = copyPointWithPoint(A);
theResult->C = copyPointWithPoint(C);
}
}
return theResult;
}
Line *createLine(Point *B, Point *C)
{
Line *theResult = NULL;
if (NULL != B && NULL != C)
{
theResult = (Line *)malloc(sizeof(Line));
if (NULL != theResult)
{
theResult->B = copyPointWithPoint(B);
theResult->C = copyPointWithPoint(C);
}
}
return theResult;
}
void destroyLine(Line *aLine)
{
if (NULL != aLine)
{
free(aLine->A);
free(aLine->C);
free(aLine->B);
free(aLine);
}
}
float lenghLineAC(Line *aLine)
{
float theResult = 0.0;
if (NULL != aLine)
{
float dX = (aLine->A->x - aLine->C->x);
float dY = (aLine->A->y - aLine->C->y);
theResult = sqrt(dX*dX + dY*dY);
}
return theResult;
}
float lenghLineBC(Line *aLine)
{
float theResult = 0.0;
if (NULL != aLine)
{
float dX = (aLine->B->x - aLine->C->x);
float dY = (aLine->B->y - aLine->C->y);
theResult = sqrt(dX*dX + dY*dY);
}
return theResult;
}
Point *copyPointWithPoint(Point *aPoint)
{
Point *theResult = (Point *)malloc(sizeof(Point));
if (NULL != theResult)
{
theResult->x = aPoint->x;
theResult->y = aPoint->y;
}
return theResult;
}
square = lenghLine(AC)*lenghLine(BC);