Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 33

Определение смещения отрезка и точки по X и Y

08.08.2019, 23:21. Показов 4354. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, есть три точки X1Y1 X2Y2 образующие отрезок и X3Y3 просто отдельная точка связанная с этим отрезком, отрезок и точка находятся в одной трехмерной системе координат XYZ
Отрезок может гулять как хочет по XY в своей плоскости и проворачиваться вокруг оси Z в любой точке плоскости, точка X3Y3 связана с этим отрезком и гуляет с тем же смещением что и отрезок

Задача определить смещение X3Y3 если смещение точек отрезка X1'Y1' и X2'Y2' всегда известно

Для начала я нахожу угол между старым отрезком и новым чтобы определить насколько прокрутился отрезок вокруг Z оси
Code
1
2
3
4
α0 = atan2(Y1−Y2,X1−X2) ! угол старого отрезка к оси X плоскости
α1 = atan2(Y1'−Y2',X1'−X2') ! угол смещенного отрезка к оси X плоскости
 
offsetangle = α1 - α0 ! угол между отрезками
Затем ищем смещение третьей точки зная угол на который сместился отрезок
Code
1
2
3
4
5
updX3 = X3 * cos(offsetangle) - Y3 * sin(offsetangle)
updY3 = X3 * sin(offsetangle) + Y3 * cos(offsetangle);
 
offsetX3 = X3 - updX3
offsetY3 = Y3 - updY3
Результат я таким расчетом получаю неправильный
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2019, 23:21
Ответы с готовыми решениями:

Определение координаты середины отрезка и отображение отрезка на форме
Люди, help! Создать проект, определяющий координату середины отрезка (X,Y), если известны координаты концов отрезка: (X1,Y1) и ...

Вычислить расстояние от точки на плоскости до ближайшей точки отрезка
Помогите ) составить программу, что рассчитывает расстояние от точки (x; y) на плоскости до ближайшей точки отрезка на оси Ox.

Алгоритм случайного смещения средней точки на плоскости
Всем доброго времени суток, уважаемые форумчане. Требуется реализовать на делфи упомянутый в названии алгоритм со следующими начальными...

9
40 / 29 / 15
Регистрация: 07.02.2019
Сообщений: 126
09.08.2019, 05:18
Если не ошибаюсь в первом уравнении должно быть так:
α0 = atan2(Y1−Y2,X2X1)
degree0 := α0/pi*180;
0
40 / 29 / 15
Регистрация: 07.02.2019
Сообщений: 126
10.08.2019, 03:30
Лучший ответ Сообщение было отмечено yesinmsg как решение

Решение

На C# для Unity.

Кликните здесь для просмотра всего текста
C#
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class AngleAngle1 : MonoBehaviour {
 
    public GameObject Cube1,Cube2,Cube3;
    private float Xa,Ya,Xb,Yb,Xc,Yc,a,b,Kdegree,degree1,degree2,radian2,radius2;
 
    void Start () {
        
        // Просчитать угол от точки "A" к точке "B", и от точки "B" к точке "C", получая разницу угла "Kdegree"
        Xa = Cube1.transform.position.x; // Координата "X", точки "A"
        Ya = Cube1.transform.position.y; // Координата "Y", точки "A"
         Xb = Cube2.transform.position.x; // Координата "X", точки "B"
         Yb = Cube2.transform.position.y; // Координата "Y", точки "B"
          Xc = Cube3.transform.position.x; // Координата "X", точки "C"
          Yc = Cube3.transform.position.y; // Координата "Y", точки "C"
 
        a = Xb-Xa;
        b = Ya-Yb;
         degree1 = Mathf.Atan2(b,a)/Mathf.PI*180; // Угол от точки "A" к точке "B" 
         if (degree1<0) degree1 = 360+degree1;
         degree1 = 360-degree1; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами. 
 
        a = Xc-Xb;
        b = Yb-Yc;
         degree2 = Mathf.Atan2(b,a)/Mathf.PI*180; // Угол от точки "B" к точке "C"
         if (degree2<0) degree2 = 360+degree2;
         degree2 = 360 - degree2; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
         radius2 = Mathf.Sqrt(Mathf.Pow(a,2)+Mathf.Pow(b,2)); // Расстояние (Радиус) от точки "B" к точке "C"
 
        Kdegree = Mathf.Abs(degree1-degree2); // Разница угла между отрезком "A","B", и точкой "C"
        //-------------------------------------------------------------------
    }
 
 
    void Update () {
        if (Input.GetMouseButton (0)) { // Если зажата мышка
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // Координаты курсора относительно камеры
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit)) { 
                
                hit.collider.transform.position = new Vector3(hit.point.x,hit.point.y,Cube2.transform.position.z); // Двигать куб за курсором
 
                // ПРОСЧИТАТЬ НОВЫЕ КООРДИНАТЫ ТОЧКИ "C" ----------------------------
                Xa = Cube1.transform.position.x; // Новая координата "X", точки "A"
                Ya = Cube1.transform.position.y; // Новая координата "Y", точки "A"
                Xb = Cube2.transform.position.x; // Новая координата "X", точки "B"
                Yb = Cube2.transform.position.y; // Новая координата "Y", точки "B"
 
                  degree1 = Mathf.Atan2(Ya-Yb,Xb-Xa)/Mathf.PI*180;
                  if (degree1<0) degree1 = 360+degree1;
                  degree1 = (360-degree1)+Kdegree; // Определить угол из точки "b" к точке "c" относительно отрезка "a","b". (360-degree1) - Чтобы поменять 90 и 270 градусов местами. 
                  if (degree1 > 360) 
                      degree1 = degree1 - 360;
                                
                 radian2 = degree1*Mathf.PI/180f; // Градусы в радианы
 
                Xc = Mathf.Cos (radian2) * radius2 + Xb; // Новая координата "X" точки "C"
                Yc = Mathf.Sin (radian2) * radius2 + Yb; // Новая координата "Y" точки "C"
                //-------------------------------------------------------------------
 
                Cube3.transform.position = new Vector3(Xc,Yc,Cube1.transform.position.z); // Переместить куб в указанные координаты       
 
            }
        }
 
    }
 
}


Переменные:
C#
1
    private float Xa,Ya,Xb,Yb,Xc,Yc,a,b,Kdegree,degree1,degree2,radian2,radius2;
При старте программы:
Просчитать угол от точки "A" к точке "B", и от точки "B" к точке "C", получая разницу угла "Kdegree"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        Xa = Cube1.transform.position.x; // Координата "X", точки "A"
        Ya = Cube1.transform.position.y; // Координата "Y", точки "A"
         Xb = Cube2.transform.position.x; // Координата "X", точки "B"
         Yb = Cube2.transform.position.y; // Координата "Y", точки "B"
          Xc = Cube3.transform.position.x; // Координата "X", точки "C"
          Yc = Cube3.transform.position.y; // Координата "Y", точки "C"
 
        a = Xb-Xa;
        b = Ya-Yb;
         degree1 = Mathf.Atan2(b,a)/Mathf.PI*180; // Угол от точки "A" к точке "B" 
         if (degree1<0) degree1 = 360+degree1;
         degree1 = 360-degree1; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами. 
 
        a = Xc-Xb;
        b = Yb-Yc;
         degree2 = Mathf.Atan2(b,a)/Mathf.PI*180; // Угол от точки "B" к точке "C"
         if (degree2<0) degree2 = 360+degree2;
         degree2 = 360 - degree2; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
         radius2 = Mathf.Sqrt(Mathf.Pow(a,2)+Mathf.Pow(b,2)); // Расстояние (Радиус) от точки "B" к точке "C"
 
        Kdegree = Mathf.Abs(degree1-degree2); // Разница угла между отрезком "A","B", и точкой "C"
В процессе смещения отрезка:
Просчитать новые координаты точки "C"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                Xa = Cube1.transform.position.x; // Новая координата "X", точки "A"
                Ya = Cube1.transform.position.y; // Новая координата "Y", точки "A"
                Xb = Cube2.transform.position.x; // Новая координата "X", точки "B"
                Yb = Cube2.transform.position.y; // Новая координата "Y", точки "B"
 
                  degree1 = Mathf.Atan2(Ya-Yb,Xb-Xa)/Mathf.PI*180;
                  if (degree1<0) degree1 = 360+degree1;
                  degree1 = (360-degree1)+Kdegree; // Определить угол из точки "B" к точке "C" относительно отрезка "A","B". (360-degree1) - Чтобы поменять 90 и 270 градусов местами. 
                  if (degree1 > 360) 
                      degree1 = degree1 - 360;
                                
                 radian2 = degree1*Mathf.PI/180f; // Градусы в радианы
 
                Xc = Mathf.Cos (radian2) * radius2 + Xb; // Новая координата "X" точки "C"
                Yc = Mathf.Sin (radian2) * radius2 + Yb; // Новая координата "Y" точки "C"
1
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 33
10.08.2019, 09:04  [ТС]
Проверил код в солиде, он неверно определяет смещение x,y точки С и с углами явно что то не то, как то смущают
Миниатюры
Определение смещения отрезка и точки по X и Y  
0
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 33
10.08.2019, 09:12  [ТС]
A, A' (0,0)
B (60, 0)
B' (20.5212086,56.38155725)
C (25,-20)

C' (27.344356, 16.65191265) - solid
C' (-53.9518, -78.907) - код
Миниатюры
Определение смещения отрезка и точки по X и Y  
0
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 33
10.08.2019, 09:27  [ТС]
Я извиняюсь, ошибочка, результаты расчета кодом указал неверные, вот что выдал расчет - C' (-12.9094, 33.8561)
0
40 / 29 / 15
Регистрация: 07.02.2019
Сообщений: 126
10.08.2019, 13:37
Я не знаю если честно в чем может быть ошибка..
Может арктангенс в солиде как-то по другому высчитывается, и нужно поменять местами Xa,Xb:
a = Xa-Xb;
b = Ya-Yb;

Вот пример с тем кодом что я выше отправил. Куб "3" перемещается относительно кубов "1" и "2".
Точка относительно отрезка.rar
1
40 / 29 / 15
Регистрация: 07.02.2019
Сообщений: 126
10.08.2019, 13:49
В юнити нужно полярность по оси Y менять, поэтому возможно вам не нужна эта строка:
degree1 = 360-degree1;
degree2 = 360 - degree2;
и В процессе смещения отрезка: убрать 360
degree1 = degree1+Kdegree;
1
40 / 29 / 15
Регистрация: 07.02.2019
Сообщений: 126
10.08.2019, 14:56
На Delphi.

Кликните здесь для просмотра всего текста
Delphi
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
unit Unit3;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls,
  Math;
 
type
  TForm3 = class(TForm)
    Image1: TImage;
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form3: TForm3;
  MouseDown1:boolean;
  Xa,Ya,Xb,Yb,Xc,Yc,a,b:integer;
  Kdegree,degree1,degree2,radian2,radius2: extended;
 
implementation
 
{$R *.dfm}
 
procedure TForm3.FormCreate(Sender: TObject);
begin
 Xa := 220;
 Ya := 240;
 Xb := 220;
 Yb := 160;
 Xc := 300;
 Yc := 160;
  with Image1.Canvas do
  begin
   Brush.Color:=clWhite;
   FillRect(Rect(0,0,Image1.Width-1,Image1.Height-1));
   //Brush.Color:=clBlack;
   Ellipse(Xa-4,Ya-4,Xa+4,Ya+4);
   Font.Size:=10;
   Ellipse(Xa-4,Ya-4,Xa+4,Ya+4);
   TextOut(Xa+7,Ya-8,'1 A');
   Ellipse(Xb-4,Yb-4,Xb+4,Yb+4);
   TextOut(Xb+7,Yb-8,'2 B');
   Ellipse(Xc-4,Yc-4,Xc+4,Yc+4);
   TextOut(Xc+7,Yc-8,'3 C');
   MoveTo(Xb,Yb);
   LineTo(Xa,Ya);
   MoveTo(Xc,Yc);
   LineTo(Xb,Yb);
 
        //----------------------------------------------------------------------
        a := Xb-Xa;
        b := Ya-Yb;
         degree1 := ArcTan2(b,a)/PI*180; // Угол от точки "A" к точке "B"
         if (degree1<0) then degree1 := 360+degree1;
         degree1 := 360-degree1; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
 
        a := Xc-Xb;
        b := Yb-Yc;
         degree2 := ArcTan2(b,a)/PI*180; // Угол от точки "B" к точке "C"
         if (degree2<0) then degree2 := 360+degree2;
         degree2 := 360 - degree2; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
         radius2 := Sqrt(sqr(a)+sqr(b)); // Расстояние (Радиус) от точки "B" к точке "C"
 
        Kdegree := Abs(degree1-degree2); // Разница угла между отрезком "A","B", и точкой "C"
        //----------------------------------------------------------------------
  end;
end;
 
procedure TForm3.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if (getasynckeystate(VK_LBUTTON)<>0) then
 begin
  Xa := X;
  Ya := Y;
  MouseDown1 := true;
 end;
 
 if (getasynckeystate(VK_RBUTTON)<>0) then
 begin
  Xb := X;
  Yb := Y;
  MouseDown1 := true;
 end;
 
 if MouseDown1=true then
  with Image1.Canvas do
  begin
   Brush.Color:=clWhite;
   FillRect(Rect(0,0,Image1.Width,Image1.Height));
   Font.Size:=10;
   Ellipse(Xa-4,Ya-4,Xa+4,Ya+4);
   TextOut(Xa+7,Ya-8,'1 A');
   Ellipse(Xb-4,Yb-4,Xb+4,Yb+4);
   TextOut(Xb+7,Yb-8,'2 B');
   MoveTo(Xb,Yb);
   LineTo(Xa,Ya);
 
 
        //----------------------------------------------------------------------
                  degree1 := ArcTan2(Ya-Yb,Xb-Xa)/PI*180;
                  if (degree1<0) then degree1 := 360+degree1;
                  degree1 := (360-degree1)+Kdegree; // Определить угол из точки "B" к точке "C" относительно отрезка "A","B". (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
                  if (degree1 > 360) then
                      degree1 := degree1 - 360;
 
                 radian2 := degree1*PI/180; // Градусы в радианы
 
                Xc := trunc(Cos (radian2) * radius2 + Xb); // Новая координата "X" точки "C"
                Yc := trunc(Sin (radian2) * radius2 + Yb); // Новая координата "Y" точки "C"
        //----------------------------------------------------------------------
 
 
 
   Ellipse(Xc-4,Yc-4,Xc+4,Yc+4);
   TextOut(Xc+7,Yc-8,'3 C');
   MoveTo(Xc,Yc);
   LineTo(Xb,Yb);
 
   MouseDown1 := false;
  end;
end;
 
end.


Переменные:
Delphi
1
2
  Xa,Ya,Xb,Yb,Xc,Yc,a,b:integer;
  Kdegree,degree1,degree2,radian2,radius2: extended;
При старте программы:
Просчитать угол от точки "A" к точке "B", и от точки "B" к точке "C", получая разницу угла "Kdegree"
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        Xa := 220; // Координата "X", точки "A"
        Ya := 240; // Координата "Y", точки "A"
        Xb := 220; // Координата "X", точки "B"
        Yb := 160; // Координата "Y", точки "B"
        Xc := 300; // Координата "X", точки "C"
        Yc := 160; // Координата "Y", точки "C"
 
        a := Xb-Xa;
        b := Ya-Yb;
         degree1 := ArcTan2(b,a)/PI*180; // Угол от точки "A" к точке "B"
         if (degree1<0) then degree1 := 360+degree1;
         degree1 := 360-degree1; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
 
        a := Xc-Xb;
        b := Yb-Yc;
         degree2 := ArcTan2(b,a)/PI*180; // Угол от точки "B" к точке "C"
         if (degree2<0) then degree2 := 360+degree2;
         degree2 := 360 - degree2; // (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
         radius2 := Sqrt(sqr(a)+sqr(b)); // Расстояние (Радиус) от точки "B" к точке "C"
 
        Kdegree := Abs(degree1-degree2); // Разница угла между отрезком "A","B", и точкой "C"

В процессе смещения отрезка:
Просчитать новые координаты точки "C"

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                  Xa := X; // Координата "X", точки "A"
                  Ya := Y; // Координата "Y", точки "A"
                 // Xb := X; // Координата "X", точки "B"
                 // Yb := Y; // Координата "Y", точки "B"
 
                  degree1 := ArcTan2(Ya-Yb,Xb-Xa)/PI*180;
                  if (degree1<0) then degree1 := 360+degree1;
                  degree1 := (360-degree1)+Kdegree; // Определить угол из точки "B" к точке "C" относительно отрезка "A","B". (360-degree1) - Чтобы поменять 90 и 270 градусов местами.
                  if (degree1 > 360) then
                      degree1 := degree1 - 360;
 
                 radian2 := degree1*PI/180; // Градусы в радианы
 
                Xc := trunc(Cos (radian2) * radius2 + Xb); // Новая координата "X" точки "C"
                Yc := trunc(Sin (radian2) * radius2 + Yb); // Новая координата "Y" точки "C"
Delphi Точка относительно отрезка.rar
0
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 33
10.08.2019, 15:14  [ТС]
Вдруг у кого будет подобная задача
Действительно помогли советы выше, убрал изменение полярности по оси Y, что в свою очередь определило правильно X смещение, и внес еще одну корректировку:
Code
1
Yc = Yb - Mathf.Sin (radian2) * radius2; // Новая координата "Y" точки "C"
Теперь и X и Y определяет верно (работает в солиде, код компилировал рассчитывал рапидом)
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.08.2019, 15:14
Помогаю со студенческими работами здесь

Даны координаты концов N - мерного отрезка (точки a и b). Найти его длину и наибольшую из координат точки а
Пропустил пары и теперь не знаю, как составить программу:boredom:

Задаются 4 переменных (x1,y1) и (x2,y2)-это крайние точки отрезка.Нужно найти все целочисленные точки принадлежащие этому отрезку на графике
Доброго времени суток. Задаются 4 переменных (x1,y1) и (x2,y2)-это крайние точки отрезка.Нужно найти все целочисленные точки...

Транзисор BFP420-выбор резисторов смещения для рабочей точки
Вопрос по следующей схеме: http://lea.hamrodyo.si/~s53mv/spectana/vco.html интересует правильно ли я посчитал резисторы смещения. ...

Определение координат отрезка
Добрый день. Пытаюсь понять как определить у прямой линии-отрезка - ее координаты. Нашел в интернете вот такой код, который как...

Определение угла наклона отрезка
Есть отрезок, который имеет координаты начала (x,y) и конца (x1,y1). Как вычислить угол наклона этого отрезка по координатам. Помогите на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru