Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937

Взаимное влияние точек

10.06.2021, 16:15. Показов 4718. Ответов 28

Студворк — интернет-сервис помощи студентам
Добрый день! Не знаю как назвать тему, поэтому пусть будет так Давно хотел сделать одну задачу (сам формулирую, поэтому может немного коряво быть):

1. На плоскости расположены 7 точек с координатами [x,y] в пикселях
Python
1
2
3
4
5
6
7
point_1 = [150,150]
point_2 = [90,90]
point_3 = [250,330]
point_4 = [400,300]
point_5 = [100,250]
point_6 = [400,100]
point_7 = [250,400]
2. Каждая точка оказывает условное воздействие вокруг себя с определенной силой, т.е. как взрыв, чем дальше от точки взрыва тем слабее воздействие. В качестве упрощения примем что каждая точка оказывает одинаковое воздействие, на одинаковом расстоянии
Python
1
2
3
4
5
6
7
8
9
10
# сила воздействия от 0,99 до 0
power = [i/100 for i in range(100)]
power.sort(reverse=True) # сила нужна по убыванию, чем дальше от точки воздействия тем меньше сила
probit_point_1 = [power,[i for i in range(100)]] # [[сила воздействия],[на расстоянии от точки]]
probit_point_2 = [power,[i for i in range(100)]]
probit_point_3 = [power,[i for i in range(100)]]
probit_point_4 = [power,[i for i in range(100)]]
probit_point_5 = [power,[i for i in range(100)]]
probit_point_6 = [power,[i for i in range(100)]]
probit_point_7 = [power,[i for i in range(100)]]
3. Воздействие от всех точек одновременное и суммирующееся. Т.е. если на точку [x,y] воздействуют три источника, то в этой точке сила воздействия будет равна сумме сил этих источников, при условии что воздействие источника достает до этой точки.

4. В качестве исследуемой плоскости возьмем плоскость размером 500 на 500 пикселей.

Решение:
1. Что бы потом нагляднее был результат, представим его в градации цветов
Python
1
2
3
4
5
6
7
# цвета для отображения результата
red = (255, 0, 0, 70)
yellow = (255, 255, 0, 70)
light_blue = (0, 255, 255, 70)
green = (0, 255, 0, 70)
blue = (0, 0, 255, 70)
purple = (255, 0, 255, 70)
2. Заранее сделал чистую картинку 500 на 500 пикселей и открыл ее через PIL
Python
1
2
3
4
5
6
# возьмем чистую картинку
im = Image.open('image.jpg')
# измерим размер
width, height = im.size
# загрузим в память
px = im.load()
3. Определим точки их воздействие
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Сделаем несколько точек и покажем их воздействие
# точки с координатами
point_1 = [150,150]
point_2 = [90,90]
point_3 = [250,330]
point_4 = [400,300]
point_5 = [100,250]
point_6 = [400,100]
point_7 = [250,400]
# сила воздействия от 0,99 до 0
power = [i/100 for i in range(100)]
power.sort(reverse=True) # сила нужна по убыванию, чем дальше от точки воздействия тем меньше сила
probit_point_1 = [power,[i for i in range(100)]] # [[сила воздействия],[на расстоянии от точки]]
probit_point_2 = [power,[i for i in range(100)]]
probit_point_3 = [power,[i for i in range(100)]]
probit_point_4 = [power,[i for i in range(100)]]
probit_point_5 = [power,[i for i in range(100)]]
probit_point_6 = [power,[i for i in range(100)]]
probit_point_7 = [power,[i for i in range(100)]]
# список всех точек (их координат) и список их влияния (силы воздействия)
coord_all = [point_1, point_2, point_3, point_4, point_5, point_6, point_7]
probit_all = [probit_point_1, probit_point_2, probit_point_3, probit_point_4,
                  probit_point_5, probit_point_6, probit_point_7]
4. Сделаем матрицу и заполним ее 0
Python
1
2
# сделаем нулевую матрицу по размерам картинки
zeors_array = np.zeros((width, height))
5. Поскольку воздействие источников суммируется, то создадим функцию которая по значению элемента матрицы определит для пикселя свой цвет
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# создадим функцию которая по суммарному воздейсатвию определяет цвет пикселя
def color_px(x,y):
    if zeors_array[x, y] >= 0.9:
        px[x, y] = red
    elif 0.9 > zeors_array[x, y] >= 0.7:
        px[x, y] = yellow
    elif 0.7 > zeors_array[x, y] >= 0.5:
        px[x, y] = light_blue
    elif 0.5 > zeors_array[x, y] >= 0.3:
        px[x, y] = green
    elif 0.3 > zeors_array[x, y] >= 0.2:
        px[x, y] = blue
    elif 0.2 > zeors_array[x, y] >= 0.1:
        px[x, y] = purple
6. Пробежимся по всем элементам матрицы и запишем воздействие, если элемент != 0 то просуммируем.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# создадим функцию которая принимает высоту, ширину картинки, список координат,
# координаты точек и силу их воздействия вокруг себя
def calc_el_zeors_array_for_point(width, height, coord, probit):
    # для каждой точки картинки определим силу воздействия заданных точек
    for x in range(width):
        for y in range(height):
            # определим расстояние от перебираемой точки картинки до
            # заданной точки coord
            dist = round(Point(x, y).distance(Point(coord[0], coord[1])))
            # крайний случай, когда перебираемая точка и заданная точка coord равны
            # тогда воздействие максимально
            if dist == 0:
                zeors_array[x, y] = zeors_array[x, y] + probit[0][0]
                color_px(x,y)
            # если расстояние есть в дистанции силы воздействия
            elif dist in probit[1]:
                # найдем индекс
                find_index = probit[1].index(dist)
                # запишем силу воздействия в матрицу (т.е. если в этой точке воздействие от другой точки уже
                # было, то воздействия суммируются)
                zeors_array[x, y] = zeors_array[x, y] + probit[0][find_index]
                color_px(x, y)
7. Переберем все точки

Python
1
2
3
4
5
6
# переберем все точки
for elem in coord_all:
    # определим индекс
    find_index = coord_all.index(elem)
    # вызовем функцию суммарного воздействия
    calc_el_zeors_array_for_point(width, height, coord_all[find_index], probit_all[find_index])
8. Выведем результат как картинку
# выведем результат как картинку
im.save('res.png')

Файл с результирующей картинкой и архивом программы прикрепил.
Миниатюры
Взаимное влияние точек  
Вложения
Тип файла: rar tst_shapely.rar (15.2 Кб, 16 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2021, 16:15
Ответы с готовыми решениями:

Непонятное взаимное влияние интеловских сетевух
Добрый день. Не могу разобраться в странном поведении интеловских сетевых карт (on-board). Дано: 1. Домашний сервер (Debian 11) с...

PCI Express разный, взаимное влияние
Вопрос заключается в следующем. Влияют ли подключённые устройства PCI Express взаимно? Например имеем плату Gigabyte B550M Aorus Elit и...

Взаимное влияние двух таймеров друг на друга
Добрый день, участок кода, состоящий из работы нескольких таймеров почему-то начинает работать не совсем корректно при их одновременной...

28
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
10.06.2021, 16:27  [ТС]
Прошу прощения за длинный текст, если кто-то дошел хотел бы задать вопрос:

Что делать если размер картинки будет не 500 на 500, а скажем 10000 на 10000? Во-первых я устану ждать ну это ладно, можно и подождать, а во-вторых переполнение памяти (это я передал картинку 10000 на 10000)...

Python
1
2
3
4
Traceback (most recent call last):
  File "C:/Users/Konstantin_user/Desktop/neft_calc_030621/tst_shapely/shapely_tst.py", line 68, in <module>
    zeors_array = np.zeros((width, height))
MemoryError
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
10.06.2021, 17:12
Михалыч, А что если разбить большой экран на части, а что бы избежать проблем с граничными точками между этими частями, добавьте части, которые перекрывают первичные части в районе граничных соединений, что бы перекрыть искажения на этих границах? Задача не простая, но можно попробовать. Но нужно научиться кроить полученные картинки (обрезать и склеивать).
Или физически увеличить память.
Кстати, когда компьютеру не хватает оперативной памяти, он подключает память, которая ему выделена на жестком диске. Сколько выделено такой памяти, задается в настройках ОС.
Если будет уж слишком долго, то формировать картинки частями, как я написал выше. И эти части выводить в разные дни, распечатывать и склеивать.

Добавлено через 7 минут
Кстати если картинки сохранять, то потом с помощью фотошопа их можно будет обработать, что бы получить конечную картину.
А так, может умельцы смогут оптимизировать Вашу программу, что бы уменьшить количество используемой памяти и повысить производительность Вашей программы.
1
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
10.06.2021, 17:17
Михалыч, сила воздействия распространяется не радиально?
Т.е. так?:
0.99 0.99 0.99
0.99 1. 0.99
0.99 0.99 0.99
0
10.06.2021, 17:19

Не по теме:

Скорее всего, какие-то алгоритмы на Convex Hull'ы придется юзать.

0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
10.06.2021, 17:51  [ТС]
Gdez, радиально, т.е. окружностью.

Python
1
2
3
4
5
6
расстояние от точки   сила воздействия
          0                                0,99
          1                                0,98
          2                                0,97
          ..                                ..
          99                              0
Добавлено через 18 минут
Viktorrus, Вы меня натолкнули на три мысли, которые я в ближайшее время опробую и отпишусь:
1. Память. Я в самом начале
Python
1
px = im.load()
гружу картинку в память, надо будет выгнать ее оттуда, она по сути в самом начале и не нужна вовсе, я же работаю с
Python
1
zeors_array = np.zeros((width, height))
А вот это без картинки работает отлично, всего ему хватает:
Python
1
2
3
import numpy as np
zeors_array = np.zeros((10000, 10000))
print(zeors_array)
А потом после работы с матрицей положить ее спокойно на картинку.

2.
Цитата Сообщение от Viktorrus Посмотреть сообщение
А что если разбить большой экран на части
Да, точно! Я знаю как ее разбить (я надеюсь, что знаю, по крайней мере мне пока так кажется) и значительно снизить время выполнения.

3.
Цитата Сообщение от Viktorrus Посмотреть сообщение
оптимизировать Вашу программу
Я же для каждого объекта оббегаю всю матрицу, по всем координатам... В общем тут тоже как мне кажется пришла здравая идея.


Цитата Сообщение от Viktorrus Посмотреть сообщение
И эти части выводить в разные дни, распечатывать и склеивать
надеюсь до этого не дойдет)))
0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
10.06.2021, 19:59
Михалыч, Если я правильно понял задачу, то все делается проще:
1. Создается нулевая матрица нужного размера. На этой матрице единицами устанавливаются пиксели с нужными координатами.
2. Создается ядро фильтра: матрица 201х201, значения - единица в центре и по ниспадающей к краям (типа конуса). Эту матрицу нормируем.
3. Фильтруем картинку из п.1 фильтром из п. 2.
4. отображаем в псевдоцветах (или квантуем по уровням, np.dogitize())
Все.
1
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
10.06.2021, 20:27
Михалыч,
Gdez, радиально, т.е. окружностью.
a[0,0] = 1.00
a[0.1] = 0.99
a[0,2] = 0.98
a[1,0] = 0.99
a[2,0] = 0.98
a[1,1], a[1,2], a[2,1], a[2,2] - ?
т.е.
1.00 0.99 0.98 -> 1.00 0.99 0.98
0.99 xxxx xxxx -> 0.99 0.99 0.98
0.98 xxxx xxxx -> 0.98 0.98 0.98

или
1.00 0.99 0.98 -> 1.00 0.99 0.98
0.99 xxxx xxxx -> 0.99 0.98 0.97
0.98 xxxx xxxx -> 0.98 0.97 0.96

Добавлено через 24 минуты
если первый вариант, то можно так:
Python
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
import sys
import numpy as np
np.set_printoptions(threshold=sys.maxsize)
 
# "радиус силы"
k = 100
 
# размер поля
s = 10000
 
# количество точек
m = 1000
 
# цвета для отображения результата
# их нужно "улаковать" в двумерный массив,
# добавив первым белый цвет
red = np.array([255, 0, 0, 70])
yellow = np.array([255, 255, 0, 70])
light_blue = np.array([0, 255, 255, 70])
green = np.array([0, 255, 0, 70])
blue = np.array([0, 0, 255, 70])
purple = np.array([255, 0, 255, 70])
 
a = np.zeros((s,s), dtype=int)
power = np.ones((3,3), dtype=int)*(k-1)
power[1, 1] = k
 
# формирование "поля силы точки"
p = k - 1
for _ in range(k-2):
    p -= 1
    power = np.pad(power, pad_width=1, mode='constant', constant_values=p) 
 
 
# здесь массив точек с координатами [x,y] в пикселях
point = [[0,45]] * m
 
for i in range(m):
    row, col = point[i]
    
    row_p0 = 0
    row_p1 = 2*k
    col_p0 = 0
    col_p1 = 2*k
    
    row_0 = row - k + 1
    if row_0 < 0:
        row_p0 = -row_0
        row_0 = 0
        
    row_1 = row + k
    if row_1 > s-1:
        row_p1 = 2*k  - (row_1 - s + 1)
        row_1 = s
    
    col_0 = col - k + 1
    if col_0 < 0:
        col_p0 = -col_0
        col_0 = 0
    
    col_1 = col + k
    if col_1 > s-1:
        col_p1 = 2*k  - (col_1 - s + 1)
        col_1 = s
 
    a[row_0:row_1, col_0:col_1] += power[row_p0:row_p1, col_p0:col_p1]
    
a[a>0.9*k] = -1
a[(a<=0.9*k) & (a>0.7*k)] = -2
a[(a<=0.7*k) & (a>0.5*k)] = -3
a[(a<=0.5*k) & (a>0.3*k)] = -4
a[(a<=0.3*k) & (a>0.2*k)] = -5
a[(a<=0.2*k) & (a>0.1*k)] = -6
a[(a<=0.1*k) & (a>0)] = 0
a *= -1
# значение каждого элемента -> индекс цвета в массиве цветов
если второй, то изменить формирование "поля силы точки"
1
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
10.06.2021, 20:42
Лучший ответ Сообщение было отмечено Михалыч как решение

Решение

Вот что-то подобное. Осталось только палитру подогнать.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
from scipy.signal import fftconvolve
import matplotlib.pyplot as plt
 
points=np.array([[150,150],[90,90], [250,330], [400,300], [100,250],[400,100],[250,400]])
width, height = 500,500
im=np.zeros((width, height))
im[points[:,1], points[:,0]]=1.0 # set points
x=np.arange(0, 201)
y=np.arange(0, 201)
X,Y=np.meshgrid(x,y)
distance=((X-100)**2+(Y-100)**2)**.5
power=1-distance/100
power[power<0]=0 # cut off power function
power=power/np.sum(power) # normalization
result=fftconvolve(im, power, mode='same') # convolutions
plt.imshow(result, cmap='jet', aspect='equal')
Миниатюры
Взаимное влияние точек  
1
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
10.06.2021, 21:10
u235, fftconvolve
0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
10.06.2021, 21:36
Поправил палитру:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
from scipy.signal import fftconvolve
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
 
points=np.array([[150,150],[90,90], [250,330], [400,300], [100,250],[400,100],[250,400]])
width, height = 500,500
im=np.zeros((width, height))
im[points[:,1], points[:,0]]=1.0 # set points
x=np.arange(0, 201)
y=np.arange(0, 201)
X,Y=np.meshgrid(x,y)
distance=((X-100)**2+(Y-100)**2)**.5
power=1-distance/100
power[power<0]=0 # cut off power function
my_cmap = ListedColormap(["#ffffff", "#ff00ff", '#0000ff', '#00ff00', "#00ff00",
                       '#00ffff', '#00ffff', '#ffff00', '#ffff00', '#ff0000'])
result=fftconvolve(im, power, mode='same') # convolutions
plt.imshow(result, cmap=my_cmap, aspect='equal', vmin=0, vmax=1)

Для множественных условий типа как в color_px(x,y) (определение номера интервала) есть np.digitize()
Миниатюры
Взаимное влияние точек  
2
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
10.06.2021, 21:38
Gdez, ядро большое, поэтому через fft быстрее свертка, чем напрямую
2
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
10.06.2021, 21:41
u235, Честно - про свертку в питоне не знал.
Спасибо!
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
10.06.2021, 22:57  [ТС]
Офигеть можно!!! u235, Gdez, вы лучшие!!! Я тут постоянно на форуме видел "что экстрасенсов тут нет"... Блин, есть, честное слово, есть!
Два дня сидел велосипед пилил

Цитата Сообщение от u235 Посмотреть сообщение
Осталось только палитру подогнать.
Вот как раз такое и хотел сделать! За неимением знаний, взял напильник и сделал через кучу if-elif хотя бы 5-6 цветов. В надежде сделать когда-то вот так)

PS
Цитата Сообщение от u235 Посмотреть сообщение
все делается проще
Сейчас бы уснуть и не сесть разбираться в этом "проще"
Очень жаль что нельзя поставить много спасибо...
0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
11.06.2021, 07:26
Цитата Сообщение от Михалыч Посмотреть сообщение
Я тут постоянно на форуме видел "что экстрасенсов тут нет"
Вы грамотно, подробно и с примерами сформулировали свой вопрос, все четко и понятно. Все вопросы бы ли бы такие.. Эх..
Поэтому экстрасенсы, в данном случае, и не нужны.
Цитата Сообщение от Михалыч Посмотреть сообщение
Сейчас бы уснуть и не сесть разбираться в этом "проще"
Попробую объяснить используя аналогию из астрономии и оптики:
1. Ваш набор точек - это координаты звезд. Таким образом в 9 строке мы создаем картинку созвездия (фон черный 0, звезды - белые точки 1)
2. У нас есть фотоаппарат с ненастроенным фокусом (Функция Размытия Точки - тут конус (15 строка)) .
3. Свертка это результат фотографирования созвездия таким фотоаппаратом (18 строка). Каждая звезда в итоге будет размыта, что мы и видим.
Михалыч, в PIL не так много функций обработки изображений, OpenCV (cv2) и scikit-image гораздо более продвинутые библиотеки.
2
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
23.07.2021, 12:40  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
Ваш набор точек - это координаты звезд.
u235, а если вместо точек будут линии? Т.е. все тоже самое по задаче, но вместо точек будут ломанные линии (или в перемешку линии и точки) с набором координат [x1,y1...xn,xn] Формат решения будет такой же?

Не по теме:

Я если честно до графики еще не добрался, но очень интересно, вопрос в голове крутится, никак не отстает

0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
23.07.2021, 13:55
Михалыч, линии заданые координатами вершин нужно будет предварительно растрировать, т.е. превратить в картинку из пикселей. А так все тоже самое.
1
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
23.07.2021, 15:03  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
нужно будет предварительно растрировать
т.е. получить множество точек этой ломанной линии?

Добавлено через 3 минуты
Например есть линия АВ (для простоты) с вершинами А[1,1] и в[3,3]. Т.е. для моей задачи я ее представляю как три точки [1,1];[2,2] и [3,3]?

Добавлено через 3 минуты
Цитата Сообщение от u235 Посмотреть сообщение
мы создаем картинку созвездия (фон черный 0, звезды - белые точки 1)
в общем я понял) для всех белых точек делаем силу воздействия. Другими если в случае с точками координаты заданы, то в случае ломанной просто нужно определить все белые точки.
u235,
1
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
23.07.2021, 15:09
Михалыч, да, все верно.
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
15.04.2022, 17:35  [ТС]
Цитата Сообщение от Михалыч Посмотреть сообщение
Во-первых я устану ждать
Наблюдение, может кому пригодится:

Если вместо, Point
Python
1
2
from shapely.geometry import Point 
dist = round(Point(x, y).distance(Point(coord[0], coord[1])))
Просто написать "руками" формулу определения расстояния от точки до точки, что бы не использовать shapely, то тот же код будет считать почти в 10 раз быстрее (у меня с shapely считает 44,49 сек., а без нее 5,28).

PS. Вывод иногда не надо таскать пушку, что бы стрелять по воробьям
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2022, 17:35
Помогаю со студенческими работами здесь

Взаимное влияние двух конкурирующих видов биологических популяций
Взаимное влияние двух конкурирующих видов биологических популяций на их количества X, Y, в n-ом году описывается такой системой уравнений: ...

Userform Взаимное влияние нескольких ToggleButton друг на друга
Здравствуйте. В своей форме я сделал несколько зависимых друг от друга кнопок ToggleButton, цель сделать так, чтобы при нажатии одной, из...

Взаимное расположение трех точек (x1,y1), (x2,y2), (x3,y3)
Даны три точки (x1,y1), (x2,y2), (x3,y3). Определить их взаимное расположение: а) все точки совпадают; б) все точки различны; в) две точки...

Определить взаимное расположение точек (x3,y3) и (x4,y4)
Определить взаимное расположение точек (x3,y3) и (x4,y4)относительно прямой, проходящей через точки (x1,y1) и (x2,y2).

Определить взаимное положение К точек в пространстве (c++)
Заданы К точек своими координатами в пространстве. Определить их взаимное положение: принадлежность одной и той же плоскости, расположение...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru