Здравствуйте! Необходимо написать простенький счетчик который прибавляет +1 раз в 10 минут. Условия: 1) возможность в ручную задать начальное число 2) Счетчик не должен обнуляться при ...
Перевести код с Python на С++
Здравствуйте!
Необходимо перевести код с Python на С++
_________________________________________________
Весь код представлен ниже:
import math
n_pattern=int(input()) #ввод количества точек в паттерне
listPattern=[] #лист с координатами всех точек паттерна
for i in range(n_pattern): #ввод и заполнение точек паттерна
a_t_1=input().split(' ',maxsplit = 1) #ввод координат одной точки, конверт строки в временный лист
listPattern.append([int(a_t_1[0]),int(a_t_1[1])]) #добавление точки в лист
n_img=int(input()) #количество распознанных точек в фото
listImg=[] #лист с координатами всех точек на изображении
for i in range (n_img):
a_t_1=input().split(' ',maxsplit = 1) #ввод координат одной точки, конверт строки в временный лист
listImg.append([int(a_t_1[0]),int(a_t_1[1])]) #добавление точки в лист
dmax=0 # Hасстояние между двумя самыми отдаленными точками в паттерне (для уменьшения погрешности)
dm=0 # Среднее расстояние между точками в паттерне
dmin=2000 # Минимальное расстояние между точками в паттерне
pm=[0,0] #лист с индексами максимально удаленных точек (из листа listPatten)
for i in range(n_pattern): # Вычисляем максимальное, минимальное и среднее растояния
for j in range(i+1,n_pattern):
d0=math.sqrt((listPattern[0]-listPattern[j][0])**2+(listPattern[1]-listPattern[j][1])**2) #находим промежуточное расстояние между точками listPattern и
dm+=d0 # Суммируем расстояния
if d0
dmin=d0
if d0>dmax:
dmax=d0
pm[0]=i
pm[1]=j
dm=dm*2/(n_pattern*(n_pattern-1)) # Вычисляем среднее
#для удобства в паттерне сдвигается начало координат в нулевую точку (listPattern[0])
XshiftPattern = listPattern[pm[0]][0]
YshiftPattern = listPattern[pm[0]][1]
#координаты 0-й точки
# Перемещение всех координат в listPattern на XshiftPattern и YshiftPattern влево и вниз
for i in range (len(listPattern)):
listPattern[0]=listPattern[0]-XshiftPattern
listPattern[1]=listPattern[1]-YshiftPattern
anglePattern = math.atan2(listPattern[pm[1]][1],listPattern[pm[1]][0]) #угол между горизонталью и прямой, образованной 0-й и 1-й точками в паттерне
dPattern = dmax #расстояние между теми же точками
det=False # Флаг нахождения группы подходящих точек
isEnd = False # Флаг остановки цикла после нахождения всех точек
detectedPoints = [] # Лист с координатами найденных точек за один цикл
nFound=[] # Лист с номерами найденных точек за один цикл
d_sol=[] # Лист с погрешностями по каждой точке (обнуляется каждый цикл
n_sol=0 # Количесво найденных решений (полных комплектов)
all_sol=[] # Лист со всеми решениями
all_d=[] # Лист со среднеквадратичными погрешностями отобранных решений
Kc=1 # Коэффициент погрешности
trig=False
while isEnd==False:
if trig==True:
isEnd=True
for i in range (n_img):
p0=listImg #считаем, что некая i-я точка из множества найденных точек соответствует 0-й точке из паттерна
for j in range (n_img):
if i!=j:
p1=listImg[j] #считаем, что некая j-я точка из множества найденных точек соответствует 1-й точке из паттерна
angle_b=math.atan2((p1[1]-p0[1]),(p1[0]-p0[0])) #угол между прямой p0p1 и горизонталью
delta_angle = angle_b-anglePattern #угол поворота
dImg = math.sqrt((p0[0]-p1[0])**2+(p0[1]-p1[1])**2) #расстояние между p0 и p1
R = dImg/dPattern #масштаб
dK=Kc*4*R # Расчет радиуса поиска точек
det = True
delta=0 # Суммарная погрешность
detectedPoints.clear()
nFound.clear() #чистка листа найденных точек за один цикл
d_sol.clear()
for k in range(n_pattern):
if det==True:
xP = round(p0[0] + R*(listPattern[k][0]*math.cos(delta_angle)-listPattern[k][1]*math.sin(delta_angle)))
yP = round(p0[1] + R*(listPattern[k][1]*math.cos(delta_angle)+listPattern[k][0]*math.sin(delta_angle))) #преобразование координат, нахождение примерного расположения следующей точки
dd=dK #маскимальная погрешность, константа, определенная из здравого смысла
for kk in range(0,n_img):
dd0=math.sqrt((xP-listImg[kk][0])**2+(yP-listImg[kk][1])**2) #расстояние между (xP; yP) и listImg[kk]
if dd0
dd=dd0
mP=kk
if dd
detectedPoints.append(listImg[mP])
d_sol.append(dd)
nFound.append(mP)
delta+=dd
else: # Если точка не найдена чистим списки и выключаем флаг дальнейшего поиска
detectedPoints.clear()
nFound.clear()
d_sol.clear()
det = False
if len(detectedPoints)==n_pattern and len(d_sol)==n_pattern: # Если все точки найдены добавляем их в список решений
n_sol+=1
d2=0
for ii in range(n_pattern):
all_sol.append(detectedPoints[ii])
d2+=d_sol[ii]**2 # Суммируем квадраты погрешностей
delta=math.sqrt(d2/(n_pattern+1))/R # Вычисляем среднеквадратичную погрешность
all_d.append(delta)
detectedPoints.clear()
isEnd=True
trig=True
Kc*=3 # Увеличивем коэффициент погрешности на случай если решения не найдены
min_d=dK
min_sol=0
for i in range(n_sol): # Отбираем лучшее решение
if all_d
min_d=all_d
min_sol=i
for ii in range(n_pattern):
print(all_sol[min_sol*n_pattern+ii][0],all_sol[min_sol*n_pattern+ii][1]) # Выводим
Выбранный исполнитель
Заявки фрилансеров
Похожие заказы
- Прикладное ПО1 исполнительЗавершен8 лет назад
Доброго времени дня уважаемые фрилансеры. Задача тривиальная: Требуется написать программу для отправки смс с юсб модема по списку номеров телефонов. Заинтересованных прошу откликнуться.
Прикладное ПО6 заявокЗакрыт8 лет назадНеобходимо написать приложение, при использовании в рамках которого сторонних программ – программы будут получать ложные данные об используемом оборудовании. Таким образом, если будет запущено 10 окон искомой программы и в каждое из этих окон ...
Прикладное ПОнет заявокЗакрыт8 лет назадДля примера взял регулярное выражение: сустав.*?\b\sревматизм.*?\b|сустав|подагр|артрит|артроз Могут быть и другие слова, указываемые в настройках, в похожем виде регулярного выражения. Программа должна найти предложения (разделённые «.?!») например, где есть вхождение ...
Прикладное ПО1 исполнительЗавершен8 лет назад- $100
Есть вот такое приложение на Андроид https://play.google.com/store/apps/details?id=com.smule.songify&hl=ru Записывает голос с микрофона и создает песню путем наложения минусовки. Нужна функция для C#, на вход подается два файла - один - записанный голос, другой - минусовка, ...
Прикладное ПО2 заявкиЗакрыт8 лет назад Добрый день! Наша команда в данный момент разрабатывает веб сервис - бот для одного ресурса. Серверная часть написана на Qt. В планах для разработчика добавление нового функционала, исправление багов. В ближайшем ...
Прикладное ПО3 заявкиЗакрыт8 лет назадТак же используем Laravel 5.3 В команде есть 4 программиста, нужен еще один именно на поисковик
Прикладное ПОнет заявокЗакрыт8 лет назадНужно создать плагин для подключения к VPN серверу. Плагин необходим для Mozilla Firefox и Google Chrome (а также всех браузеров на его основе). Плагин подключается к серверу и создает шифрованный туннель и весь ...
Прикладное ПОнет заявокЗакрыт8 лет назадДобрый день! Интересует написание программы, чекера. Программа должна проверять по списку номеров из документа .txt наличие их в viber и все, которые есть, сохранять в таблицу. в таблицу рядом с номером нужно ...
Прикладное ПО3 заявкиЗакрыт8 лет назаднаписание программы для чтение pdf (содержит данные, табличные и не только ) с последующим редактированием в программе содержимого pdf и экспортом в word/excel, с сохранением данные в отдельный файл и возможностью последующих редакций.
Прикладное ПО1 заявкаЗакрыт8 лет назад