Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127

Как перевести код с delphi на С#?

04.03.2013, 15:52. Показов 5456. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем у меня есть 2 кода программ написанных на 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
133
134
135
type
  TForm1 = class(TForm) XPManifest1: TXPManifest; Edit1: TEdit; Edit2: TEdit; Edit4: TEdit; Button1: TButton; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; Memo1: TMemo; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label6: TLabel; Label8: TLabel; Edit7: TEdit; Button2: TButton; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; procedure N4Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender:TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  n:array of integer;
  m:array of integer;
  s:array of array of Real;
  v1:array of array of Real;//матрица для закона распределения состояний и вероятностей
  sl:array of real;
 
implementation
{$R *.dfm}
 
procedure TForm1.N4Click(Sender: TObject);
begin
close;
end;
 
procedure TForm1.N3Click(Sender: TObject);
begin
form1.Edit1.Text:='';
form1.Edit2.Text:='';
form1.Edit4.Text:='';
form1.Edit7.Text:='';
memo1.Lines.Text:='';
end;
 
procedure TForm1.N2Click(Sender: TObject);
begin
ShowMessage('Выполнил:Казанцев Виталий'+#13+'группа 07-ВТ-1'+#13+'ИЗ2');
end;
 
procedure TForm1.Button1Click(Sender: TObject);
  var takt,i,nak1,nak2,y,u,v,x,razn,ne:integer;
  b,a,t,t2,l,mu,nu,p1,p2,l2:real;
      psi:real;
      m:boolean;
    w:real;
     // label   GotoLabel;
begin
try  //обработка исключительных ситуаций
randomize;//генератор случайных чисел
if (Edit1.Text='') or (Edit2.Text='') or (Edit4.Text='') or (Edit7.Text='') then
ShowMessage('Вы ввели не все параметры!') //проверка заполнения полей необходимыми данными
else  begin
t:=strtoint(edit2.text);//время обслуживания одного пенсионера 1м опреатором (мю1, т.е. 1 поток)
t2:=strtoint(edit7.text);//время обслуживания пенсионера вторым оператором (мю2, т.е. второй поток)
takt:=StrToInt(Edit4.Text);//количество тактов (за которое время будут получены данные по системе)
 
l:=StrToInt(Edit1.Text);//плотность потока пенсионеров
//--------------------------------------------------------------------------------
  a:= 2;//внутреннее вероятностного автомата А, приравнивается первому интервалу
  b:= 1;//внутреннее значение вероятностного автомата В
  x:= 0;//выходной сигнал автомата А
  y:= 0;//выходной сигнал автомата В
  u:= 0;//детерминированный автомат u - сколько поступило заявок
  v:= 0;//детерминированный автомат v - сколько обслужено заявок
  nak1:=0;//обнуление накопителя первого потока заявок(от просто больных)
  nak2:=0;//обнуление накопителя второго потока заявок(от больных со скорой помощи)
   ne:=0;
 
for i:= takt downto 0 do begin
 randomize;
 
    if (a > 1) then begin a:= a-1;  x:= 0;
    end else  begin
           a:= round(-60/l*ln(random)); //генерация случайной величины (промежутка времени между заявками)
         x:= 1
              end;
 
 
   // Если очереди одинаковы, то вновь прибывшая заявка с равной вероятностью занимает место в одной из них.
     if (x=1) and (nak1=nak2) then
     begin
    psi:= random(2);
if psi=1 then
nak1:=nak1+1 //вероятность появления  1 потока
else
nak2:=nak2+1//вероятность появления  2потока
     end else
        //Всякая вновь прибывшая заявка становится в более короткую очередь, если очередь не равна по длине.
      if (x=1) and (nak1<nak2) then
      begin
    nak1:=nak1+x;
    end//накопитель для первого потока
    else
    if (x=1) and (nak2<nak1) then
      begin
    nak2:=nak2+x;
    end;//накопитель для второго потока
 
      if (b > 1) then begin //пенсионер обслуживается
      b:= b-1; y:= 0;
    end else
      if (b <= 1)and(x = 0) then begin
        b:= 0;  y:= 0;
      end else
          if (b <= 1)and(nak2>=nak1) then begin
          b:= t2;//ound(-60/mu*ln(random));//генерация случайной величины (времени обслуживания)
          y:= 1;
        end else
        if (b <= 1)and(nak1>nak2) then begin
          b:= t;//ound(-60/mu*ln(random));
          y:= 1;
        end;
     v:= v + y;//накапливание количества обработанных заявок
 
  end;
 
Memo1.Lines.Clear;
  {определение характеристик СМОР}
memo1.Lines.Add('Количество поступивших пенсионеров к 1оператору: '+IntToStr(nak1));
memo1.Lines.Add('Количество поступивших пенсионеров ко 2оператору '+IntToStr(nak2));
memo1.Lines.Add('Общее количество обслуженных пенсионеров: '+IntToStr(v));
ne:=(nak1+nak2)-v;
memo1.Lines.Add('Общее количество недождавшихся пенсионеров: '+IntToStr(ne));
end;
except
ShowMessage('Один или несколько параметров введены неправильно!')
end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;
 
end.


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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
type
  TForm1 = class(TForm)  Label1: TLabel; Edit1: TEdit; Label2: TLabel;
Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7:   TLabel; Edit2: TEdit  Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label8: TLabel; Label9: TLabel; Edit6: TEdit; Edit7: TEdit; Label10: TLabel; Edit8: TEdit; Button1: TButton; StringGrid1: TStringGrid; Label11: TLabel; Edit9: TEdit;
   XPManifest1: TXPManifest; Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   private
   { Private declarations }
   public
    { Public declarations }
   end;
 
var
  Form1: TForm1;
  
  s1: array [1..2,1..100] of integer;
  s2: array [1..2,1..100] of  integer;
  tact,mat_oj,m1,n1,lambda1,m2,n2,lambda2:integer; //входные параметры
  sigma:real;
      i,j,sl,a,x,zanyato1,zanyato2,ob_kol_zayavok,proshli_1_fazu,proshli_obe_fazi:integer;
  ob1,ob2,otkaz,pol_ob  :integer;
  summa12,ver_polnogo_obsl,ver_obsl_1fazi:real;
implementation
   
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 label
 metka1;
 label
  metka2;
begin
try //обработка исключений
randomize; //генератор случайных чисел
if (Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') or
(Edit4.Text='') or (Edit5.Text='') or (Edit6.Text='')  or (edit9.Text='')
 or (Edit7.Text='') or (Edit8.Text='') then //проверка заполнения необходимых данных
ShowMessage('Вы ввели не все параметры!')
else
  begin
tact:=StrToInt(Edit1.Text);//количество тактов
mat_oj:=StrToInt(Edit6.Text);//среднее значение
sigma:=StrToFloat(Edit7.Text);//среднее отклонение
m1:=StrToInt(Edit8.Text);//количество мест в накопителе перед первой фазой обслуживания
n1:=StrToInt(Edit2.Text);//количество каналов обслуживания  первой фазы
lambda1:=strtoint(edit3.Text); //производительность каналов обслуживания первой фазы
m2:=strtoint(edit9.Text);   //количество мест в накопителе перед второй фазой обслуживания
n2:=strtoint(edit4.Text);   //  количество каналов обслуживания  второй  фазы
lambda2:=strtoint(edit5.Text); //производительность каналов обслуживания второй фазы
for i:=1 to n1 do
 begin
   s1[1,i]:=0;  //обнуление матрицы s1
   s1[2,i]:=0;
 end;
for i:=1 to n2 do
 begin
   s2[1,i]:=0; //обнуление матрицы s2
   s2[2,i]:=0;
 end;
 
zanyato1:=0;  //количество занятых мест в накопителе перед первой фазой
zanyato2:=0;   //количество занятых мест в накопителе перед второй фазой обслуживания
a:=1;    //внутреннее состояние автомата А
ob1:=0; ob2:=0; otkaz:=0;
pol_ob:=0;
//счетчики
ob_kol_zayavok:=0; //для общего количества заявок
proshli_1_fazu:=0; //для заявок, которые прошли только первую фазу обслуживания
proshli_obe_fazi:=0;   //для заявок прошедших и первую, и вторую фазу обслуживания
 
   {составление ТУФП}
 for j:= tact downto 0 do
  begin
   if a>1 then  begin   a:=a-1; x:=0;
    end else
         begin
           summa12:=0;
           for i:=1 to 12 do
           summa12:=summa12+random;
           a:=round(mat_oj+sigma*(summa12-6));
                x:=1;
         end;
ob_kol_zayavok:=ob_kol_zayavok+x;
  zanyato1:=zanyato1+x;//детерминированный автомат для моделирования накопителя 1
ob1:=ob1+1;
          if (zanyato1>m1) then
          begin
          zanyato1:=m1;
          ob1:=ob1-1;           otkaz:=otkaz+1;
           zanyato2:=zanyato2+x;            ob2:=ob2+1;
           if (zanyato2>m2) then
           begin
         zanyato2:=m2;       ob2:=ob2-1;
  end;  end;
 
  //sl:=random(3);
 //  if sl =1 then goto metka1
    //     else goto metka2;
 
 metka1:  for i:=1 to n1 do
begin
     if s1[1,i]>1 then
      begin
        s1[1,i]:=s1[1,i]-1;
        s1[2,i]:=0;
      end;
     if (s1[1,i]=1) and (zanyato1>=1) then
      begin
        s1[1,i]:=round((-60/lambda1)*ln(random));
        zanyato1:=zanyato1-1;
        s1[2,i]:=1;
      end;
     if (s1[1,i]=1) and (zanyato1=0) then
      begin
        s1[1,i]:=0;         s1[2,i]:=1;
      end;
     if (s1[1,i]=0) and (zanyato1>=1) then
      begin
        s1[1,i]:=round((-60/lambda1)*ln(random));
        zanyato1:=zanyato1-1;
        s1[2,i]:=0;
      end;
     if (s1[1,i]=0) and (zanyato1=0) then
      begin
        s1[1,i]:=0;         s1[2,i]:=0;
      end;     end;
 
     
   for i:=1 to n1 do
   begin
       zanyato2:= zanyato2+s1[2,i];
       pol_ob:=pol_ob+1;
     if zanyato2>m2 then
       begin
         zanyato2:=m2;          pol_ob:=pol_ob-1;
         proshli_1_fazu:=proshli_1_fazu+s1[2,i];
       end else
         zanyato2:=zanyato2+s1[2,i];
   end;
 
 metka2:  for i:=1 to n2 do
   begin
     if s2[1,i]>1 then
      begin
        s2[1,i]:=s2[1,i]-1;         s2[2,i]:=0;
      end;
     if (s2[1,i]=1) and (zanyato2>=1) then
      begin
        s2[1,i]:=round((-60/lambda2)*ln(random));
        zanyato2:=zanyato2-1;
        s2[2,i]:=1;
      end;
     if (s2[1,i]=1) and (zanyato2=0) then
      begin
        s2[1,i]:=0;         s2[2,i]:=1;
      end;
     if (s2[1,i]=0) and (zanyato2>=1) then
      begin
        s2[1,i]:=round((-60/lambda2)*ln(random));
        zanyato2:=zanyato2-1;
        s2[2,i]:=0;
      end;
     if (s2[1,i]=0) and (zanyato2=0) then
      begin
        s2[1,i]:=0;        s2[2,i]:=0;
      end;    end;
  for i:=1 to n2 do
 proshli_obe_fazi:=proshli_obe_fazi+s2[2,i];
 
end;
 ver_obsl_1fazi:=proshli_1_fazu/ob_kol_zayavok;       // вероятность обслуживания только первой фазой обслуживания
 ver_polnogo_obsl:=proshli_obe_fazi/ob_kol_zayavok;   //вероятность обслуживания на обеих фазах
 
StringGrid1.Cells[0, 0] := 'Определены параметры ';
StringGrid1.Cells[1, 0] := 'Значения ';
StringGrid1.Cells[0, 1] := 'Общее кол заявок ';
StringGrid1.Cells[0, 2] := 'Прошли только 1-фазу';
StringGrid1.Cells[0, 3] := 'Прошли полное обсл-е ';
StringGrid1.Cells[0, 4] := 'Вер обсл только 1-фазы ';
StringGrid1.Cells[0, 5] := 'Вер обсл на обеих фазах ';
StringGrid1.Cells[0, 6] := 'Вер обсл только 2 фазы ';
StringGrid1.Cells[0, 7] := 'Вер отказа ';
StringGrid1.Cells[1, 1] :=  inttostr(ob_kol_zayavok);
StringGrid1.Cells[1, 2] :=  inttostr(proshli_1_fazu);
StringGrid1.Cells[1, 3] :=  inttostr(proshli_obe_fazi);
StringGrid1.Cells[1, 4] := formatfloat('0.000',ver_obsl_1fazi);
StringGrid1.Cells[1, 5] :=  formatfloat('0.000',ver_polnogo_obsl);
StringGrid1.Cells[1, 6] :=  formatfloat('0.000',ob2/ob_kol_zayavok);
StringGrid1.Cells[1, 7] :=  formatfloat('0.000',otkaz/ob_kol_zayavok);
 
end;
 except
   end;
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2013, 15:52
Ответы с готовыми решениями:

Перевести код с Delphi
как мне перевести этот код с делфи 7 на c# win forms? procedure TForm1.Button1Click(Sender: TObject); var list:tstringlist; ...

Перевести код с Delphi на C#
В общем, переписывал прогу с делфи на си#, и что-то как то не удаётся. program project1; uses Math; var i, N :...

Перевести код с Delphi
Помогите перевести участок кода, написанный на Delphi в код C#. begin if (Image5.Left+Image5.Width &gt; Image6.Left) then if...

15
 Аватар для Devastar
3 / 3 / 0
Регистрация: 30.09.2012
Сообщений: 123
04.03.2013, 16:12
Правда говоря, не юзал... может поможет...http://sourceforge.net/projects/delphi2csharp/
1
-3 / 1 / 4
Регистрация: 19.02.2013
Сообщений: 132
04.03.2013, 16:15
или в Гугл пиши
Конвертер код делфи на C#
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
04.03.2013, 16:39  [ТС]
В общем ничего интересного не получилось(
По ходу дела данное подвластно только специалисту и в том и в том языке. И только в ручную... Это очень плохо, т.к я C# с натягом знаю, а про делфи я вообще молчу....

Добавлено через 3 минуты
Собственно может все же кто поможет?
Эти 2 задачи мне нужны в курсовой. И их решение есть на языке делфи, представленные выше. Но мне нужно на C#....
Постановки задач таковы:
1 код:

В банке работает два оператора по выдаче пенсии с разными производительностями (μ1 = 10 клиентов/час; μ2 = 15 клиентов/час).
Управление перед очередями организовано следующим образом, что их длина отличается не более чем на одну заявку. Если разница длин очередей становится более одной заяви, то последняя из боле длиной очереди немедленно перемещается в более короткую. Всякая вновь прибывшая заявка становится в более короткую очередь, если очередь не равна длине. Если очереди одинаковые, то вновь прибывшая заявка с равной вероятностью занимает место в одной из них.


2-код:
В систему массового обслуживания поступает смешанны поток с параметром λ, состоящий из двух типов заявки Z1 и Z2, находящихся в отношении как m к n. Заявки Z1 должны пройти первую и вторую фазы обслуживания, а заявка Z2 только вторую. Первую фазу обслуживания осуществляют N обслуживающих аппаратов со средним удельным временем T1, имеющим нормальное распределение с параметрами (Т1 и о1). Вторую фазу обслуживают R аппаратов со средним временем Т2, имеющим нормальное распределение с параметрами (Т2 и о2). Если на первой фазе обслуживания все каналы обслуживания будут заняты, то в этом случае очередная заявка получает отказ. Обслуженные заявки на первой фазе также как и заявки второго типа поступают перед второй фазой обслуживания в накопитель М.
Определить пропускную способность системы и установить также отношение числа обслуженных заявок первого типа ко второму.
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
04.03.2013, 19:09
проги в общем не сложные... чтобы понять как работают и хоть как то представить на сишарп, достаточно заменить бегин-енд на скобки... а дальше все станет ясно...
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
04.03.2013, 19:12  [ТС]
Цитата Сообщение от hepper Посмотреть сообщение
проги в общем не сложные... чтобы понять как работают и хоть как то представить на сишарп, достаточно заменить бегин-енд на скобки... а дальше все станет ясно...
Поможете?
А станет ясно, это опять же) кто в обоими языками владеет.. К сожалению пока что мне этого не дано(
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
04.03.2013, 19:15
помочь тут типа любой готов, ток делать за тебя никто не станет...
что в коде не ясно?
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
04.03.2013, 19:42  [ТС]
Это понятное дело) Вопросов будет куча) Потому что я и в С# дуб дубом)
Прислушавшись совета вашего я заменил все бегин-енд на скобки, действительно начало походить на что то знакомое)
Вот у меня вопрос: с 1-й по 8 строчку 1-го кода, я как понимаю это идет объявление собранных на форме элементов?

Добавлено через 11 минут
Снимаю свой вопрос) Рано еще задавать вопросы) Я еще не до разобрался)
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
04.03.2013, 19:49
короч код кудато не туда я запостил... ща дубль два
Вложения
Тип файла: 7z WindowsFormsApplication10.7z (34.4 Кб, 47 просмотров)
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
05.03.2013, 10:04  [ТС]
Спасибо огромное!)
а что значит += ?
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
05.03.2013, 10:09
Delphi
1
2
var a : integer;
a := a + 1;
1
13 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 127
05.03.2013, 10:28  [ТС]
что то там числа какие то получаются))) миллионы)
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
05.03.2013, 11:18
...
1
 Аватар для Devastar
3 / 3 / 0
Регистрация: 30.09.2012
Сообщений: 123
05.03.2013, 19:19
допустим если в числовом i += 1;
i будет каждый раз прибавлять на 1
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
05.03.2013, 21:52
Цитата Сообщение от Sany_kz Посмотреть сообщение
что то там числа какие то получаются))) миллионы)
логику кода проверь
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.03.2013, 21:54
Sany_kz, помню переписывал код с дельфи одной проги, вот это было мучение. Тем более, что там ужасный быдлокод был. Если найду - выложу, это можно на говнокод постить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2013, 21:54
Помогаю со студенческими работами здесь

Перевести код с Delphi на C#
while i&lt;=length(a) do begin case a of '0'..'9': begin s:=s+a; i:=i+1; ...

Перевести код с Delphi
Помогите перевести участок кода, написанный на Delphi в код C#. type ukazatel=^zveno; zveno=record FIO:string; ...

Перевести код с Delphi на C#
Нашёл в интернете интересный проект, но он написан на Дельфи. Долго искал и всё-таки нашёл конвертер кода Вот описание программы от её...

Перевести код с Delphi в C#
Доброе всем! Помогите записать этот код с делфи на с # Edit4.Text:=InttoHex(strtoint(a1)+Strtoint(a2)+ Strtoint(a3),0);

Перевести код кодировки с Delphi
Здравствуйте. Вот код кодировки написанный на delphi Function Cript(Source:WideString):WideString; var i:Integer; hashTab:array...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru