Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12

Структура приложения "Спичечные головоломки"

15.02.2015, 13:01. Показов 4046. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
С самого начала: хочу реализовать приложение головоломку "спички".
И так, что я пока сделал:
Я могу ввести число строк и столбцов и нарисовать, а так же сразу
создаю массив с точками пересечения прямых.

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
    Image1->Canvas->Brush->Color = clWhite;
    Image1->Canvas->Pen->Color = clSkyBlue;
    int N = 7;
    N = Edit1->Text.ToInt();
    Panel1->Width = Panel1->Height;
    float dx, dy;
    dy = (float)Image1->Height / N;
    dx = (float)Image1->Width / N;
    TPointF *map = new TPointF[(N+1)*(N+1)]; // массив точек
    int i = 0;
    for (float y = 0; y < Image1->Height; y+=dy) {
        for (float x = 0; x < Image1->Width; x+=dx) {
            Image1->Canvas->Rectangle(x, y , x+dx, y+dy);
            if (x==0&&y==0) {
                map[i] = PointF(x,y);       i++;
                map[i] = PointF(x+dx,y);    i++;
                map[i] = PointF(x+dx,y+dy); i++;
                map[i] = PointF(x,y+dy);    i++;
            }
            if (x!=0&&y==0) {
                map[i] = PointF(x+dx,y);    i++;
                map[i] = PointF(x+dx,y+dy); i++;
            }
            if (y!=0&&x==0) {
                map[i] = PointF(x,y+dy);    i++;
                map[i] = PointF(x+dx,y+dy); i++;
            }
            if (x!=0&&y!=0) {
                map[i] = PointF(x+dx,y+dy); i++;
            }
        }
    }
Далее я буду создавать спичку и рисовать.
И тут вопрос как лучше рисовать спичку и как обрабатывать Drag And Drop? при рисовании на Canvos
Плюс ко всему мне нужно обрабатывать положение спички, так, что бы она могла располагаться только от точки до точки:
Название: 2.png
Просмотров: 141

Размер: 2.7 КбНазвание: 3.png
Просмотров: 140

Размер: 4.5 Кб
Как я думою:
Мне нужно создать класс Квадрат и при подсчете точек создавать объекты этого класса и сохранять его координаты.
т.е. наглядно будет так:Название: 4.png
Просмотров: 142

Размер: 3.1 Кб
Далее просто MouseMove будем бегать по всем квадратам и сравнивать координаты и положение мышки:
Относительно всего поля найдем нужный квадрат, а относительно этого квадрата будем смотреть где в нем расположить спичку.

Нужны комментарии, предложения, замечания и т.д. ...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2015, 13:01
Ответы с готовыми решениями:

Структура приложения
Обращаюсь к опытным разработчикам как новичок. Хочу написать маленькое несложное приложение, но возникла проблема с проектированием...

Структура приложения
У меня есть класс user и post. Есть контроллер. Насчет классов понятно - на каждый объект свой класс. А вот насчет контроллеров -...

Структура Qt-приложения
Хотел бы понять, как устроено приложение Qt и как правильно его разрабатывать. Как правильно разделять интерфейс от логики приложения....

56
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 13:09
Студворк — интернет-сервис помощи студентам
ivan.-94 почему мой коммент проигнорировал? то что я предложил - самое правильное решение.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2015, 13:53
ivan.-94, лучше не заставлять юзеров проявлять чудеса микроконтроля мышкой. Сделай проще - тянешь спичку ведь не сферическую, а спозиционированную каким-то образом по отношению к сетке. Так и магнитить ее только в места, которым соответствует ее текущее положение в пространстве. А вращение спички производить заранее или в процессе перетаскивания(кликом ПКМ, например).
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 14:26

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
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
float DistanceFromPointToLine(int Mx, int My, float A, float B, float C);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
 
float DistanceFromPointToLine(int Mx, int My, float A, float B, float C)
{
        return fabs(A*Mx+B*My+C)/sqrt(A*A+B*B);
}
 
void DrawBlack(TImage *image)
{
        int W = image->Width;
        int H = image->Height;
 
        image->Canvas->Pen->Color = clBlack;
        image->Canvas->Pen->Width = 3;
        image->Canvas->Rectangle(0,0,W,H);
        image->Canvas->MoveTo(0,0);
        image->Canvas->LineTo(W,H);
        image->Canvas->MoveTo(0,H);
        image->Canvas->LineTo(W,0);
}
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        DrawBlack(Image1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
        float W = Image1->Width;
        float H = Image1->Height;
 
        float fDist[6];
 
        fDist[0] = DistanceFromPointToLine(X,Y, -H/W, -1, H); // y = -H/W + H  (íàêëîí ñïè÷êè âïðàâî)
        fDist[1] = DistanceFromPointToLine(X,Y, H/W, -1, 0); // y = H/W (íàêëîí ñïè÷êè âëåâî)
        fDist[2] = DistanceFromPointToLine(X,Y, 1, 0, 0); // x = 0 (ñïè÷êà ñëåâà)
        fDist[3] = DistanceFromPointToLine(X,Y, 1, 0, -W); // x = 0 (ñïè÷êà ñïðàâà)
        fDist[4] = DistanceFromPointToLine(X,Y, 0, 1, 0); // y = 0 (ñïè÷êà ñâåðõó)
        fDist[5] = DistanceFromPointToLine(X,Y, 0, 1, -H); // y = H (ñïè÷êà ñíèçó)
 
        float fDistMin = fDist[0];
        int idxMin = 0;
 
        for ( int i = 1; i < 6; i++ )
        {
                if (fDist[i] < fDistMin)
                {
                        fDistMin = fDist[i];
                        idxMin = i;
                }
        }
 
        DrawBlack(Image1);
 
        Image1->Canvas->Pen->Width = 5;
        Image1->Canvas->Pen->Color = clRed;
 
        if ( idxMin == 0 ) // íàêëîí ñïè÷êè âïðàâî
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 1 ) // íàêëîí ñïè÷êè âëåâî
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 2 ) // ñïè÷êà ñëåâà
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(0,H);
        }
        else if ( idxMin == 3 ) // ñïè÷êà ñïðàâà
        {
                Image1->Canvas->MoveTo(W,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 4 ) // ñïè÷êà ñâåðõó
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 5 ) // ñïè÷êà ñíèçó
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,H);
        }
 
}
//---------------------------------------------------------------------------
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:28  [ТС]
Цитата Сообщение от kzru_hunter Посмотреть сообщение
почему мой коммент проигнорировал? то что я предложил - самое правильное решение.
Я не проигнорировал а как раз таки и рассматриваю его.
Так как идея, что предложил Avazart либо мне не до конца понятна либо не подходит чуток.
С вашей идеей я пока так взяв листочек и ручку набросал только:

Легко заметить, что расстояние для стороны
Left: Расстояние от точки (Left;y) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Left)^2}
Right: Расстояние от точки (Right;y) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Right)^2}
Top: Расстояние от точки (x;Top) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(y-Top)^2}
Top: Расстояние от точки (x;Bottom) до точки (x;y) = https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(y-Bottom)^2}
И остается вопрос по диагоналям... Там прямые заданны не уравнением, а двумя точками.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:32  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Сделай проще - тянешь спичку ведь не сферическую, а спозиционированную каким-то образом по отношению к сетке. Так и магнитить ее только в места, которым соответствует ее текущее положение в пространстве.
Спичка позиционирована не по отношению к сетке а непосредственно какого то квадрата, который в свою очерель является частью сетки.
Цитата Сообщение от BRcr Посмотреть сообщение
А вращение спички производить заранее или в процессе перетаскивания(кликом ПКМ, например).
Ну вращать спичку вообще думою не стоит, нужно то сделать головоломку и на вряд ли кто то будет думать в какую сторону головку спички повернуть.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2015, 14:46

Не по теме:

Цитата Сообщение от ivan.-94 Посмотреть сообщение
Легко заметить, что
Я чуть печенькой не подавился, что ж ты делаешь-то?!:D Корни из квадратов...



Вычисление расстояния между точкой и прямой/лучом/отрезком

Добавлено через 5 минут
Цитата Сообщение от ivan.-94 Посмотреть сообщение
Ну вращать спичку вообще думою не стоит, нужно то сделать головоломку и на вряд ли кто то будет думать в какую сторону головку спички повернуть.
Да причем тут головка? Вращать - оно в смысле по горизонтали спичка, по вертикали или по одной из диагоналей. Изначально. И в то время, пока тащим и думаем, куда ее сбросить.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:49  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Я чуть печенькой не подавился, что ж ты делаешь-то?! Корни из квадратов...
2ое слагаемое - разность по другой координате равно нулю, так зачем же писать?
Вы бы хотели что бы я записал так:https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Left)^2+(y-y)^2}?
А вам не кажется что это равносильно https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x-Left)^2}?

Добавлено через 1 минуту
Цитата Сообщение от BRcr Посмотреть сообщение
Вычисление расстояния между точкой и прямой/лучом/отрезком
А я же четко писал
Цитата Сообщение от ivan.-94 Посмотреть сообщение
Расстояние от точки (Left;y) до точки (x;y)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33478 / 21576 / 8250
Регистрация: 22.10.2011
Сообщений: 37,034
Записей в блоге: 12
18.02.2015, 14:50
Цитата Сообщение от ivan.-94 Посмотреть сообщение
А вам не кажется что это равносильно
Модуль? Не, не слышал про модули, лучше корень из квадрата использовать, угу...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.02.2015, 14:52
Вообще-то, нам кажется, что sqrt( pow( x - y, 2 ) ) и fabs( x - y ) - равносильно. По результату.
Сдается мне, кто-то жестко заработался.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:53  [ТС]
kzru_hunter, спасибо, можете чуток пояснить
fabs(A*Mx+B*My+C)/sqrt(A*A+B*B);
Что тут А,В,С. относительно того что Width = Height = (просто )a
0
18.02.2015, 14:54

Не по теме:

Цитата Сообщение от ivan.-94 Посмотреть сообщение
А я же четко писал
А, ну ладно. Простите дяденька засранца.:cry: Пойду потихоньку...

0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 14:58  [ТС]
Вот вы навалились на меня:
Формула вычисления расстояния между двумя точками https://www.cyberforum.ru/cgi-bin/latex.cgi?A({x}_{a},{y}_{a}) и https://www.cyberforum.ru/cgi-bin/latex.cgi?B({x}_{b},{y}_{b}) на плоскости:
https://www.cyberforum.ru/cgi-bin/latex.cgi?AB = \sqrt{({x}_{b}-{x}_{a})^2+({y}_{b}-{y}_{a})^2}
Давай те закроем этот вопрос, да можно лучше, но сделал как сделал - смысл то не в этом.
Спасибо, за замечание. В следующий раз учту
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 15:04
ivan.-94 забудь ты про своё расстояние между двумя точками и меньше авазарта слушай.

Упростил код немного. Использовал следующие материалы: http://www.math.by/geometry/eqline.html и http://ru.onlinemschool.com/ma... y/p_line1/
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
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
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
float DistanceFromPointToLine(int Mx, int My, int X1, int Y1, int X2, int Y2);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
 
float DistanceFromPointToLine(int Mx, int My, int X1, int Y1, int X2, int Y2) // Mx и My - координаты точки, а X1,Y1,X2,Y2 - координаты двух точек, образующих линию
{
        float A = Y1-Y2;
        float B = X2-X1;
        float C = X1*Y2-X2*Y1;
        return fabs(A*Mx+B*My+C)/sqrt(A*A+B*B);
}
 
void DrawBlack(TImage *image)
{
        int W = image->Width;
        int H = image->Height;
 
        image->Canvas->Pen->Color = clBlack;
        image->Canvas->Pen->Width = 3;
        image->Canvas->Rectangle(0,0,W,H);
        image->Canvas->MoveTo(0,0);
        image->Canvas->LineTo(W,H);
        image->Canvas->MoveTo(0,H);
        image->Canvas->LineTo(W,0);
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        DrawBlack(Image1);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
        float W = Image1->Width;
        float H = Image1->Height;
 
        float fDist[6];
 
        // уравнение прямой A*x+B*y+C=0
        // уравнение прямой по двум точкам: (y1-y2)*x+(x2-x1)*y+(x1*y2-x2*y1)=0
 
        fDist[0] = DistanceFromPointToLine(X,Y, 0,H, W,0); // (наклон спички вправо)
        fDist[1] = DistanceFromPointToLine(X,Y, 0,0, W,H); // (наклон спички влево)
        fDist[2] = DistanceFromPointToLine(X,Y, 0,0, 0,H); // (спичка слева)
        fDist[3] = DistanceFromPointToLine(X,Y, W,0, W,H ); // (спичка справа)
        fDist[4] = DistanceFromPointToLine(X,Y, 0,0, W,0); // (спичка сверху)
        fDist[5] = DistanceFromPointToLine(X,Y, 0,H, W,H); // (спичка снизу)
 
        float fDistMin = fDist[0];
        int idxMin = 0;
 
        for ( int i = 1; i < 6; i++ )
        {
                if (fDist[i] < fDistMin)
                {
                        fDistMin = fDist[i];
                        idxMin = i;
                }
        }
 
        DrawBlack(Image1);
 
        Image1->Canvas->Pen->Width = 5;
        Image1->Canvas->Pen->Color = clRed;
 
        if ( idxMin == 0 ) // наклон спички вправо
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 1 ) // наклон спички влево
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 2 ) // спичка слева
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(0,H);
        }
        else if ( idxMin == 3 ) // спичка справа
        {
                Image1->Canvas->MoveTo(W,0);
                Image1->Canvas->LineTo(W,H);
        }
        else if ( idxMin == 4 ) // спичка сверху
        {
                Image1->Canvas->MoveTo(0,0);
                Image1->Canvas->LineTo(W,0);
        }
        else if ( idxMin == 5 ) // спичка снизу
        {
                Image1->Canvas->MoveTo(0,H);
                Image1->Canvas->LineTo(W,H);
        }
}
//---------------------------------------------------------------------------
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
18.02.2015, 18:38  [ТС]
kzru_hunter, Спасибо и отдельное спасибо за то, что предоставили материал

Добавлено через 3 часа 19 минут
У меня сейчас проблема в том, что при перемещении спички - процессор подскакивает 20%-50%
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
18.02.2015, 18:54
Цитата Сообщение от ivan.-94 Посмотреть сообщение
У меня сейчас проблема в том, что при перемещении спички - процессор подскакивает 20%-50%
Тут уже другой вопрос и нужно оптимизировать с графикой. Как вариант, делать прорисовку через каждые несколько мс.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.02.2015, 08:22
ivan.-94,
1) Включите двойную буферизацию формы.
2) Отрисовывайте все в битмап, а потом прорисовывайте его в имейдж.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.02.2015, 14:32
Цитата Сообщение от SatanaXIII Посмотреть сообщение
2) Отрисовывайте все в битмап, а потом прорисовывайте его в имейдж.
Для этого есть PaintBox, но думаю не поможет ибо скорее всего тупит из-за не оптимального поиска.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
19.02.2015, 15:13  [ТС]
Цитата Сообщение от kzru_hunter Посмотреть сообщение
Как вариант, делать прорисовку через каждые несколько мс.
У меня перерисовка идет только при каки то изменениях.
Цитата Сообщение от Avazart Посмотреть сообщение
ибо скорее всего тупит из-за не оптимального поиска.
Не, тормозит при перерисовке:
у меня в функции дров для каждой спички выполняется
C++
1
2
3
MatchesList[i]->BitmapMatches = new TPNGGraphic();
                MatchesList[i]->BitmapMatches->Assign(BitmapMatches[BOTTOM]);
                Canvas->StretchDraw(Rect(left+2, bottom-d, right-2, bottom+d), MatchesList[i]->BitmapMatches);
Плюс не мало важна сама прорисовка поля:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Canvas->Brush->Color    = clWhite;
    Canvas->Pen->Color      = clSkyBlue;
    Canvas->Pen->Width      = 1;
    float dx, dy;
    dy = (float)Height / N;
    dx = (float)Width / N;
    int i = 0, ID = 0;
    SquareList.clear();
    for (float y = 0; y < Height; y+=dy) {
        for (float x = 0; x < Width; x+=dx) {
            Canvas->Rectangle(x, y , x+dx, y+dy);
            this->SquareList.push_back(new Square(x, y, x+dx, y+dy, ID));
            ID+=1;
        }
    }
    float d = 0.05*dx;
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
19.02.2015, 15:19  [ТС]
В общем у меня массив с 6 изображениями, я при прорисовке в зависимости от статуса спички(положения) задаю ей какое то изображение, отрисовываю и освобождаю объект, поэтому с памятью проблем нет - она не растет.
Но когда я беру спичку и начинаю двигать проц подлетает.
Вот пока, что то упростил сократил, сделал меньше перерисовок - пошустрее, но мне не нравится..
Вложения
Тип файла: rar Release.rar (2.12 Мб, 4 просмотров)
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.02.2015, 15:36
На кой тебе StretchDraw() ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2015, 15:36

Структура приложения
Меня уже давно интересует как правильно организовать структуру приложения(набор каталогов, файлов etc). Куда класть сторонние библиотеки и...

Структура приложения
Коллеги, помогите, плз, советом. Создаю приложение: Есть консольный класс Client: В общих чертах программа делает следующее (Для...

Структура приложения
Подскажите, поделитесь опытом. Как правильно начать писать приложение, как предварительно определить структуру будущего приложения, чтобы в...

Структура приложения
Здравтсвуйте! Приложение постраничное с использованием React на некоторых страницах. Подскажите, как удобнее в плане расширяемости...

Структура приложения ООП
Добрый день! Погружаюсь в изучение ООП в PHP! Не могу нигде нарыть информацию о структуре приложений. Допустим есть задача - создать...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru