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
| class Point
{
public double x, y;
public Point(double _x, double _y)
{
x = _x;
y = _y;
}
}
class Triangle
{
public Point a { set; get; }
public Point b { set; get; }
public Point c { set; get; }
public Triangle(Point _a, Point _b, Point _c) //конструктор
{
a = _a;
b = _b;
c = _c;
}
public void sd_right(double w1) //сдвиг вправо
{
a.x = +w1; b.x = +w1; c.x = +w1;
}
public void sd_left(double w2) //сдвиг влево
{
a.x = -w2; b.x = -w2; c.x = -w2;
}
public void sd_up(double w3) //сдвиг верх
{
a.y = +w3; b.y = +w3; c.y = +w3;
}
public void sd_down(double w4) //сдвиг вниз
{
a.y =-w4; b.y = -w4; c.y = -w4;
}
public double R(Point _a, Point _b)
{
return Convert.ToSingle(Math.Sqrt(Math.Pow(_a.x - _b.x, 2) + Math.Pow(_a.y - _b.y, 2)));
}
public void sd_alfa(double d ) //поворот на угол d
{
Point M = new Point((a.x + b.x + c.x) / 3, (a.y + b.y + c.y) / 3);
a.x = M.x + Convert.ToSingle(R(M, a) * Math.Cos(d));
a.y = M.y - Convert.ToSingle(R(M, a) * Math.Sin(d));
b.x = M.x + Convert.ToSingle(R(M, b) * Math.Cos(d));
b.y = M.y - Convert.ToSingle(R(M, b) * Math.Sin(d));
c.x = M.x + Convert.ToSingle(R(M, c) * Math.Cos(d));
c.y = M.y - Convert.ToSingle(R(M, c) * Math.Sin(d));
}
public void sd_rad(double r,double d) //увелiчение на r
{
Point M = new Point((a.x + b.x + c.x) / 3, (a.y + b.y + c.y) / 3);
a.x = Convert.ToSingle((R(M, a) + r) * Math.Cos(d));
a.y = -Convert.ToSingle((R(M, a) + r) * Math.Sin(d));
b.x = Convert.ToSingle((R(M, b) + r) * Math.Cos(d));
b.y = -Convert.ToSingle((R(M, b) + r) * Math.Sin(d));
c.x = Convert.ToSingle((R(M, c) + r) * Math.Cos(d));
c.y = -Convert.ToSingle((R(M, c) + r) * Math.Sin(d));
}
public void GetInfo()
{
Console.WriteLine($"a=({a.x},{a.y}), b=({b.x},{b.y}) , c=({c.x},{c.y}) ");
}
};
class Program
{
static void Main(string[] args)
{
Point a = new Point(1, 1);
Point b = new Point(3, 3);
Point c = new Point(3, 1);
double r = 6;
double d = 0.4;
double w1 = 1;
double w2 = 0;
double w3 = 0;
double w4 = 0;
Triangle T = new Triangle(a, b, c);
T.sd_down((double)w4);
T.sd_left((double)w2);
T.sd_rad((double)r,d);
T.sd_right((double)w1);
//T.sd_up((double)w3);
T.GetInfo();
Console.ReadLine();
}
} |