Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263

Объединить несколько объектов Geometry

24.10.2022, 17:29. Показов 2352. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Есть у меня вот такая вот фигурка:

XML
1
2
<Path Stroke="Blue" Fill="White" Data="M10,10 L20,20 L10,30 L0,20 L10,10 Z"/>
        <Path Stroke="Blue" Fill="Blue" Data="M10.5,11 L19,20 L10.5,29 Z"/>
Как мне можно объединить данные этих объектов в один, чтобы можно было использовать в шаблоне по аналогии:

XML
1
2
3
4
5
6
<Geometry x:Key="geometry.Marker">Сюда надо вставить мои Path</Geometry>
        <DataTemplate x:Key="template.ViewboxPath" DataType="Geometry">
            <Viewbox>
                <Path  Data="{Binding}" Stroke="White" StrokeThickness="2" />
            </Viewbox>
        </DataTemplate>
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2022, 17:29
Ответы с готовыми решениями:

Как объединить несколько ContextMenu?
Приветствую! Есть окно, у окна ContextMenu. В окне есть кнопка, у которой тоже ContextMenu. При вызове ContextMenu у кнопки должно...

Как я могу объединить несколько столбцов в один datagrid
Я работаю на visual studio, C#, WPF, БД на SQL. У меня есть datagrid и одна большая проблема. Мне нужно вывести в datagrid данные...

Как объединить несколько одинаковых объектов в один, просуммировав отличающееся поле
Доброго времени суток. Вопрос задан в заголовке темы. Может кто подсказать, как это сделать НЕ ИСПОЛЬЗУЯ циклы, в помощью встроенных...

43
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 11:04  [ТС]
Студворк — интернет-сервис помощи студентам
Элд Хасп, чего то не понял.

А в шаблон то можно как нибудь засунуть??

XML
1
2
3
4
5
6
<DrawingGroup>
                <DrawingGroup.Transform>
                    <TranslateTransform Y="40"/>
                </DrawingGroup.Transform>
                <StaticResource ResourceKey="marker.Drawing"/>
            </DrawingGroup>
А сдвиги привязать к полю

Добавлено через 26 минут
Элд Хасп, А вот придумал костыль как одной кистью отрисовать. ))

XML
1
<Path Stroke="Blue" Fill="White" Data="M10,10 L20,20 L10,30 L0,20 L10,10 Z M10,10 L10,30 M11,11 L11,29 M12,12 L12,28 M13,13 L13,27 M14,14 L14,26 M15,15 L15,25 M16,16 L16,24 M17,17 L17,23 M18,18 L18,22 M19,19 L19,21" StrokeEndLineCap="Round" />
И все работает как положено )))
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 11:05
Цитата Сообщение от Worldmaster Посмотреть сообщение
А в шаблон то можно как нибудь засунуть??
В шаблоне же UI элементы.
Их и нужно двигать.

Но это будет сильно медленнее.
Смысл использования Geometry и Drawing, что их можно подготовить асинхронно не в UI потоке.
Заморозить и передать в 1-2 UI элемента.
Так как UI элементов мало, то работать будет максимально быстро.

Если же делать через Шаблоны и привязки, то вся эта логика будет работать в UI потоке.
Что при большом количестве элементов неизбежно будет нет-нет лагать.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 11:13  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Но это будет сильно медленнее.
Смысл использования Geometry и Drawing, что их можно подготовить асинхронно не в UI потоке.
Заморозить и передать в 1-2 UI элемента.
Так как UI элементов мало, то работать будет максимально быстро.
Чего то я не врублюсь как это в коде реализовать то. Я должен создавать DrawingGroup с трансформацией??
А в какой список это кидать?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 11:16
Цитата Сообщение от Worldmaster Посмотреть сообщение
вот придумал костыль как одной кистью отрисовать.
Мне тоже такая мысли в голову приходило, но есть подводные камни:
1) Непонятно как это может повести себя при различных масштабирования;
2) Непонятно как такая длинная линия скажется на производительности - ведь таких маркеров может быть очень много.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 11:19  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Непонятно как такая длинная линия скажется на производительности - ведь таких маркеров может быть очень много.
Так вы же предложили сделать асинхронно. Просто будет не две геометрии а одна.
Просто я не очень пойму как подготовить и как задавать трансляцию.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 11:22
Цитата Сообщение от Worldmaster Посмотреть сообщение
Я должен создавать DrawingGroup с трансформацией??
Да.

Цитата Сообщение от Worldmaster Посмотреть сообщение
А в какой список это кидать?
Не в список.
Формируете единый Drawing для всего графика и маркеров.
Из него один общий DrawingImage и передаёте его в один Image.
То есть в UI потоке останется только один Image.
Всё остальное будет асинхронно.

Добавлено через 2 минуты
Цитата Сообщение от Worldmaster Посмотреть сообщение
Так вы же предложили сделать асинхронно.
Да, асинхронно.
Но, у вас асинхронно только геометрия создаётся.
А визуализироваться она будет синхронно UI элементом Path.
И для каждого маркера свой отдельный Path.
При большом количестве маркеров, возможно, могут возникнуть проблемы.

Добавлено через 1 минуту
То есть если сравнивать Path с геометрией и Image с ней же, то конечно, Path будет шустрее.
Но у вас получается большое количество отдельных Path против одного Image - в таком случае Image будет лучше.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 11:25  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Не в список.
Формируете единый Drawing для всего графика и маркеров.
Из него один общий DrawingImage и передаёте его в один Image.
То есть в UI потоке останется только один Image.
Всё остальное будет асинхронно.
Чет теперь ваще стало непонятно.. А как же оси ?? их тоже чтоли сюда добавлять?
И получается что можно будет отказаться от всех ItemsContol ?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 11:36
Цитата Сообщение от Worldmaster Посмотреть сообщение
Просто я не очень пойму как подготовить и как задавать трансляцию.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DrawingGroup whole = new(); // Весь рисунок
 
whole.Children.Add(graph); // Добавление Drawing графика
 
// Добавление маркеров по позициям
// Для примера позиции в какой-то коллекции
foreach(var position in positions)
{
    TranslateTransform trans = new(){X = position.X, Y = position.Y};
    DrawingGroup m = new(); // Drawing для очередного маркера
    m.Children.Add(marker); // Добавление готового маркера 
    m.Transform = trans; // Смещение маркера в нужную позицию
    whole.Children.Add(m); // Добавление смещённого маркера на общий график
}
Цитата Сообщение от Worldmaster Посмотреть сообщение
их тоже чтоли сюда добавлять?
Да.
Цитата Сообщение от Worldmaster Посмотреть сообщение
И получается что можно будет отказаться от всех ItemsContol ?
Да.

Добавлено через 3 минуты
Worldmaster, есть ещё DrawingContext.
На нём, вообще, можно рисовать как на отдельном холсте.
Как по пиксельно, так и линиями, фигурами, текстом.
А после завершения рисунка заморозить и передать в Image для вывода.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 13:58  [ТС]
Элд Хасп, чет кажется так даже больше тормозить стало.

C#
1
2
3
4
5
6
7
8
9
10
DrawingGroup renderGroup = new DrawingGroup();
            foreach (var line in LineItems)
            {
                line.Render(PlotDims, renderGroup);
            }
            renderGroup.Freeze();
 
            DrawingImage image = new DrawingImage(renderGroup);
            image.Freeze();
            RenderedData = image;

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
 public override void Render(PlotInfo scale, DrawingGroup context)
        {
            int begin = Points.Count - BufferLength;
            if (begin < 0) begin = 0;
 
            PathFigure myPathFigure = new PathFigure
            {
                StartPoint = Helper.NormalizePoint(new Point(0, Points[begin].Y), scale),
                IsClosed = false,
            };
            var geom = new PathGeometry(new PathFigure[] { myPathFigure });
 
            int locPos = 0;
            for (int i = begin + 1; i < Points.Count; i++)
            {
                var center = Helper.NormalizePoint(new Point(locPos++, Points[i].Y), scale);
                myPathFigure.Segments.Add(new LineSegment(center, true));
 
                if (Points[i].IsMark != MarkerDir.None)
                {
                    int Size = 10;
                    PathFigure markerFigure = new PathFigure()
                    {
                        StartPoint = new Point(center.X, center.Y - Size),
                        IsClosed = true,
                    };
 
                    markerFigure.Segments.Add(new LineSegment(new Point(center.X + Size, center.Y), true));
                    markerFigure.Segments.Add(new LineSegment(new Point(center.X, center.Y + Size), true));
                    markerFigure.Segments.Add(new LineSegment(new Point(center.X - Size, center.Y), true));
                    markerFigure.Segments.Add(new LineSegment(new Point(center.X, center.Y - Size), true));
 
                    var markgeom = new PathGeometry(new PathFigure[] { markerFigure });
                    markgeom.Freeze();
 
                    GeometryDrawing pgm = new GeometryDrawing(_FillBrush, new Pen(_BorderPenBrush, 2), markgeom);
                    context.Children.Add(pgm);
                }
            }
 
            geom.Freeze();
 
            GeometryDrawing pg = new GeometryDrawing(_FillBrush, new Pen(_BorderPenBrush, 2), geom);
            context.Children.Add(pg);
        }

Свойство для привязки к Image

XML
1
2
3
4
5
6
7
8
9
DrawingImage _RenderedData;
        public DrawingImage RenderedData
        {
            get => _RenderedData; set
            {
                _RenderedData = value;
                NotifyPropertyChanged(nameof(RenderedData));
            }
        }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 14:04
Цитата Сообщение от Worldmaster Посмотреть сообщение
чет кажется так даже больше тормозить стало.
Это плохо...
Торможение графики один из самых труднорешаемых моментов в WPF.
Здесь поможет только создание различных реализаций их тестирование.

Причём может оказать, что на наборе из 100 элементов быстрее одна реализация, а на наборе из 1000 - другая.


Попробуйте, отключая вывод тех или иных элементов, определить проблемный участок.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 15:02  [ТС]
Элд Хасп, А как сделать чтобы он не менял размер изображения при отрисовке?
А то вот например углы маркеров по идее вылазят за пределы контрола, но он пытаестся ужать изображение чтобы впихнуть его в контрол и в итоге график плавает относительно осей.
Миниатюры
Объединить несколько объектов Geometry  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 15:19
Цитата Сообщение от Worldmaster Посмотреть сообщение
А как сделать чтобы он не менял размер изображения при отрисовке?
Выводите через Image?
Если да, то "поиграйтесь" со свойствами Stretch и StretchDirection.

Так же можно обрезать как нужно задав геометрию в свойство DrawingGroup.ClipGeometry.

Добавлено через 1 минуту
Worldmaster, если тормозит - попробуйте рисовать используя DrawingContext.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 15:39  [ТС]
Элд Хасп, Спасибо щас поиграю.

Провел тест.
Сделал вот так:

C#
1
2
3
4
5
6
7
8
9
10
/DrawingVisual visual = new DrawingVisual();
            using (DrawingContext dc = visual.RenderOpen())
            {
                dc.DrawDrawing(renderGroup);
                dc.Close();
            }
            RenderTargetBitmap target = new RenderTargetBitmap((int)ActualWidth, (int)ActualHeight, 96.0, 96.0, PixelFormats.Pbgra32);
            target.Render(visual);
            target.Freeze();
            RenderedData = target;
Вроде бы не тормозит.. как то субьективно. Может быть это тормозня из за периода обновления??
Данные заливаю каждые 1мс а обновляю картинку каждые 15мс. Видимо движение за 15 мс очень большое и кажется что оно как бы дергается.

Ну и еще когда мышкой начинаешь дергать тоже вроде бы подтормаживает ...
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 15:44
Цитата Сообщение от Worldmaster Посмотреть сообщение
Данные заливаю каждые 1мс а обновляю картинку каждые 15мс.
А сколько времени занимает создание новой картинки?
И не понял по методу Render(PlotInfo scale, DrawingGroup context) - context откуда берётся, когда замораживается?
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
26.10.2022, 15:56  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
И не понял по методу Render(PlotInfo scale, DrawingGroup context) - context откуда берётся, когда замораживается?
Это методы отрисовки каждого графика в чарте. А главная группа создается при вызове функции UpdateModel()

C#
1
2
3
4
5
6
 DrawingGroup renderGroup = new DrawingGroup() { ClipGeometry = new RectangleGeometry(new Rect(0, 0, ActualWidth, ActualHeight)) };
            foreach (var line in LineItems)
            {
                line.Render(PlotDims, renderGroup);
            } 
            DrawingImage target = new DrawingImage(renderGroup);
Затем таргет фризится и отправляется в свойство.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
А сколько времени занимает создание новой картинки?
долго конечно, но объективно нормально.
от 2 до 3 мс.

Это само построение DrawingGroup.

Кстати обрезка вообще не работает никак .. (((
XML
1
<Image Source="{Binding RenderedData}" ClipToBounds="False" Stretch="None"  />
C#
1
DrawingGroup renderGroup = new DrawingGroup() { ClipGeometry = new RectangleGeometry(new Rect(0, 0, ActualWidth, ActualHeight)) };
Все равно он прыгает ... ((
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
26.10.2022, 20:20
Цитата Сообщение от Worldmaster Посмотреть сообщение
Кстати обрезка вообще не работает никак ..
Это обрезка выступающих частей. А рисунок сжимается чтобы поместился в Image, поэтому выступающих из Image частей нет.
По факту, свойство ClipToBounds в Image бессмысленно.

Обрезать нужно DrawingGroup перед заморозкой.
Лучше делать так:
Создаёте RectangleGeometry с размером всего графика.
Этот Rectangle записываете первым в DrawingGroup и заливаете цветом фона.
И его же записываете в свойство DrawingGroup.ClipGeometry.
В результате всё что вылезет за размеры прямоугольника фона будет обрезано.

Добавлено через 1 минуту
Цитата Сообщение от Worldmaster Посмотреть сообщение
долго конечно, но объективно нормально.
от 2 до 3 мс.
Это много.
Лучше попробуйте DrawingContext.
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
27.10.2022, 08:31  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Создаёте RectangleGeometry с размером всего графика.
Этот Rectangle записываете первым в DrawingGroup и заливаете цветом фона.
И его же записываете в свойство DrawingGroup.ClipGeometry.
В результате всё что вылезет за размеры прямоугольника фона будет обрезано.
Супер!! То что доктор прописал. Спасибо. ))

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Это много.
Лучше попробуйте DrawingContext.
Так это почти 300 фпс. Вроде бы допустимо .. или я чего то не замечаю??

Добавлено через 22 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Лучше попробуйте DrawingContext.
Ужас .. одни только линии рисует от 4мс и выше

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 System.Diagnostics.Stopwatch stw = new System.Diagnostics.Stopwatch();
            stw.Restart();
 
 
            DrawingVisual visual = new DrawingVisual();
            using (DrawingContext dc = visual.RenderOpen())
            {
                foreach (var line in LineItems)
                {
                    line.Render(PlotDims, dc);
                }
                dc.Close();
            }
 
            RenderTargetBitmap target = new RenderTargetBitmap((int)ActualWidth, (int)ActualHeight, 96.0, 96.0, PixelFormats.Pbgra32);
            target.Render(visual);
 
            target.Freeze();
            stw.Stop();
            Console.WriteLine(stw.Elapsed.TotalMilliseconds);
походу предыдущий вариант самый шустрый.

а как вот действительно создать объект маркера и заморозить его чтоли или закешировать чтобы не создавать каждый раз??
Сейчас я вот так создаю. Но для каждой точки высчитываю свои положения.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 PathFigure markFigure = new PathFigure
            {
                StartPoint = new Point(center.X, center.Y - size),
                IsClosed = true,
            };
 
            markFigure.Segments.Add(new LineSegment(new Point(center.X + size, center.Y), true));
            markFigure.Segments.Add(new LineSegment(new Point(center.X, center.Y + size), true));
            markFigure.Segments.Add(new LineSegment(new Point(center.X - size, center.Y), true));
            markFigure.Segments.Add(new LineSegment(new Point(center.X, center.Y - size), true));
 
 DrawingGroup group = new DrawingGroup();
            group.Children.Add(new GeometryDrawing(Brushes.White, new Pen(_BorderPenBrush, 1), new PathGeometry(new PathFigure[] { markFigure })));
            group.Children.Add(new GeometryDrawing(_BorderPenBrush, new Pen(_BorderPenBrush, 1), new PathGeometry(new PathFigure[] { DirectionMark })));
            return group;
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
27.10.2022, 08:55
Цитата Сообщение от Worldmaster Посмотреть сообщение
Ужас .. одни только линии рисует от 4мс и выше
Тогда не подходит.
Вы писали про иногда появляющиеся лаги - думал возможно с DrawingContext удастся их избежать,
Так же может быть разница из-за базового объекта.
Попробуйте получить из DrawingGroup.Open().

Ещё, если верно понимаю логику DrawingContext, то им можно перерисовывать имеющийся Drawing.
Правда делать это надо хоть и асинхронно, но в UI потоке.

Там нужно реализовать что-то в виде бесконечного цикла в Диспетчере с самым низким приоритетом.
В каждом цикле:
- получили данные на текущий момент в локальные переменные;
- отрисовали данные;
- следующая итерация.

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

Добавлено через 3 минуты
Цитата Сообщение от Worldmaster Посмотреть сообщение
а как вот действительно создать объект маркера и заморозить его чтоли или закешировать чтобы не создавать каждый раз??
Я же показал здесь: пост №28
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
27.10.2022, 09:49  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я же показал здесь: пост №28
А откуда там взялся готовый маркер то:

C#
1
m.Children.Add(marker); // Добавление готового маркера
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
27.10.2022, 12:51
Цитата Сообщение от Worldmaster Посмотреть сообщение
А откуда там взялся готовый маркер то:
См. пост #20:
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Маркер создаёте один раз в статическом поле и замораживаете.
Добавлено через 2 минуты
C#
1
2
3
4
5
6
7
private static readonly Drawing marker;
static MyClass()
{
    // Здесь создаёте маркер
    marker = .....;
    marker.Freeze();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2022, 12:51

Несколько объектов в одном файле или мегалокласс, агрегирующий классы этих объектов
Вопросом я задался из предыдущего обсуждения. Там меня успокоили по моему вопросу, но навели на сотню новых :) Для контекста предыдущее...

Объединить несколько for в один
Как пример у меня есть 3 for'a: for( ; ; ) { for( ; ; ) { for( ; ; ) { //что-то делаю } }

Как объединить интерфейсы 2-х объектов в Remoting интерфейсе?
Доброго времени суток! Уважаемые гуру, нужна ваша помощь. Пишу приложение на базе Remoting. Возникла проблема в оранизации Remoting...

Объединить несколько файлов в один
Такой вопрос. Дано множество файлов txt, в них таблицы типа Имя(таб)возраст(таб)пол(таб)телефон(таб)дата ...

Как объединить несколько коллекций?
Делаю для тренировке игру. у меня есть несколько классов под каждый класс есть свой лист в котором хранятся экземпляры этих классов. ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru