Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2022 10:15:44

SergeyZh
Зарегистрирован: 2022-01-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгладить графики

Здравствуйте
У меня есть два простых кода по которым строятся кривые. Первый код содержит только один array который мне нужно сгладить но так чтобы новая кривая проходила через все точки. Второй код содержит два array по которым строятся две кривые. Эти кривые мне нужно замкнуть через ближайшие точки тоже с помощью кривой так чтобы в итоге получился более менее эллипс. Подскажите пожалуйста как это сделать.


 import matplotlib.pyplot as plt
import numpy as np
x = np.array([-966407.89,-950000,-900000,-850000,-800000,-750000,-700000,-650000,-600000,-550000,-500000,-450000,-400000,-350000,-300000,-250000,-200000,-150000,-100000,-50000,0,50000,100000,150000,200000,250000,300000,350000,400000,450000,500000,550000,600000,650000,700000,750000,800000,850000,900000,950000,1000000,1021000,966407,950000,900000,850000,800000,750000,700000,650000,600000,550000,500000,450000,400000,350000,300000,250000,200000,150000,100000,50000,0,-50000,-100000,-150000,-200000,-250000,-300000,-350000,-400000,-450000,-500000,-550000,-600000,-650000,-700000,-750000,-800000,-850000,-900000,-950000,-1030000,-1080000,-1110000,-1115911,-966407.89])
y = np.array([0.000284163665301647,685.481345431417,2391.45045349584,3763.65199801249,4934.71155184779,5964.6281633323,6886.68942095237,7721.64396971495,8483.43931582653,9181.95597885273,9824.46283102861,10416.4566504407,10962.1768884869,11464.9365796457,11927.3430475099,12351.4493057019,12738.8599980436,13090.8063291572,13408.199001938,13691.664885911,13941.5710485039,14158.0383746211,14340.9459793581,14489.9267952872,14604.3539528837,14683.316749252,14725.5839797701,14729.5510006159,14693.1647981672,14613.818048831,14488.1977181289,14312.0643546631,14079.9211803469,13784.4993229454,13415.9182628928,12960.2304939828,12396.6873712083,11692.001306083,10786.1732502764,9546.577630922,7492.73702161973,5067.89575111798,-0.0236683319191735,-422.739166308134,-1602.14701869796,-2655.71388453809,-3614.1996575715,-4496.59719902091,-5315.60321066213,-6080.1874975716,-6796.94671476701,-7470.87966330147,-8105.86028908029,-8704.94087427911,-9270.55417160323,-9804.65245810687,-10308.8055811049,-10784.2713725731,-11232.0468201151,-11652.9053982488,-12047.4241079955,-12416.0025738568,-12758.875739645,-13076.1211318486,-13367.661223979,-13633.261072224,-13872.5210520821,-14084.8641625319,-14269.5169290554,-14425.4823640491,-14551.5026355371,-14646.0078962048,-14707.0458689977,-14732.1838012106,-14718.3694106679,-14661.7287514643,-14557.2630225465,-14398.3755688971,-14176.0965854394,-13877.7293703977,-13484.2810625493,-12964.9917681513,-11708.4660494782,-10340.0423216816,-8638.89181108914,-7380.81145580819,0.000284163665301647])
plt.grid()
plt.plot(x, y, marker='.')
plt.show()

 import matplotlib.pyplot as plt
import numpy as np
x1 = np.array([-966407.89, -950000, -900000, -850000, -800000, -750000, -700000, -650000, -600000, -550000, -500000, -450000, -400000, -350000, -300000, -250000, -200000, -150000, -100000, -50000, 0, 50000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 450000, 500000, 550000, 600000, 650000, 700000, 750000, 800000, 850000, 900000, 950000, 1000000, 1021000])
x2 = np.array([-1115911, -1110000, -1080000, -1030000, -950000, -900000, -850000, -800000, -750000, -700000, -650000, -600000, -550000, -500000, -450000, -400000, -350000, -300000, -250000, -200000, -150000, -100000, -50000, 0, 50000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 450000, 500000, 550000, 600000, 650000, 700000, 750000, 800000, 850000, 900000, 950000, 966407])
y1 = np.array([0.000284163665301647, 685.481345431417, 2391.45045349584, 3763.65199801249, 4934.71155184779, 5964.6281633323, 6886.68942095237, 7721.64396971495, 8483.43931582653, 9181.95597885273, 9824.46283102861, 10416.4566504407, 10962.1768884869, 11464.9365796457, 11927.3430475099, 12351.4493057019, 12738.8599980436, 13090.8063291572, 13408.199001938, 13691.664885911, 13941.5710485039, 14158.0383746211, 14340.9459793581, 14489.9267952872, 14604.3539528837, 14683.316749252, 14725.5839797701, 14729.5510006159, 14693.1647981672, 14613.818048831, 14488.1977181289, 14312.0643546631, 14079.9211803469, 13784.4993229454, 13415.9182628928, 12960.2304939828, 12396.6873712083, 11692.001306083, 10786.1732502764, 9546.577630922, 7492.73702161973, 5067.89575111798])
y2 = np.array([-7380.81145580819, -8638.89181108914, -10340.0423216816, -11708.4660494782, -12964.9917681513, -13484.2810625493, -13877.7293703977, -14176.0965854394, -14398.3755688971, -14557.2630225465, -14661.7287514643, -14718.3694106679, -14732.1838012106, -14707.0458689977, -14646.0078962048, -14551.5026355371, -14425.4823640491, -14269.5169290554, -14084.8641625319, -13872.5210520821, -13633.261072224, -13367.661223979, -13076.1211318486, -12758.875739645, -12416.0025738568, -12047.4241079955, -11652.9053982488, -11232.0468201151, -10784.2713725731, -10308.8055811049, -9804.65245810687, -9270.55417160323, -8704.94087427911, -8105.86028908029, -7470.87966330147, -6796.94671476701, -6080.1874975716, -5315.60321066213, -4496.59719902091, -3614.1996575715, -2655.71388453809, -1602.14701869796, -422.739166308134, -0.0236683319191735])
plt.plot(x1, y1, marker='.')
plt.plot(x2, y2, marker='.')
plt.show()


Прикреплённый файлы:
attachment one array.png (28,5 KБ)

Офлайн

#2 Янв. 13, 2022 08:26:32

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сгладить графики

SergeyZh
мне нужно сгладить
SergeyZh
мне нужно замкнуть через ближайшие точки
И то и другое в математике может иметь множество смыслов. В большинстве случаев эти задачи не NP полные.

matplotlib вообще умеет только полигональные линии строить из отрезочков прямых. Что вы под сглаживанием при этом понимаете?

Ваши точки можно соединять только в том порядке в котором они в массиве или порядок тоже надо определить?

И таких вопросов я могу вам накидать еще с десяток.

Напишите более точно что вы хотите получить, четко и ясно.

Обычно сглаживание функциональных графиков осуществляется построением сплайнов.
Для сглаживания линий в многомерных пространствах используют безье сплайны. И то и другое есть в scipy/numpy. У обоих алгоритмов результат это функциональный объект. Вам еще надо подумать что вы с ним будете делать.



Офлайн

#3 Янв. 13, 2022 14:45:16

SergeyZh
Зарегистрирован: 2022-01-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгладить графики

Спасибо за ответ,
У меня есть две формулы, одна для верхней кривой (голубая), другая для нижней(оранжевая). Обе формулы вычисляют положение Y при вводе значения Х. Кривые строятся по этим координатам. Чем меньше шаг по Х тем глаже кривые получатся. Мне нужно замкнуть точки A-D1 и B1-C кривыми так чтобы эти две кривые повторяли кривизну голубой и оранжевой кривых. В итоге получить фигуру похожую на эллипс. Это первый вариант. Второй вариант перестроить эти кривые как один массив так чтобы через все точки проходил один сплайн.
Файл прикрепил.

Прикреплённый файлы:
attachment Picture2.png (22,7 KБ)

Офлайн

#4 Янв. 13, 2022 18:08:51

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1378
Репутация: +  123  -
Профиль   Отправить e-mail  

Сгладить графики

SergeyZh
У меня есть две формулы
SergeyZh
Обе формулы вычисляют положение Y при вводе значения Х
SergeyZh
Мне нужно замкнуть точки A-D1 и B1-C кривыми
А если подставить в формулу значение первого X такого же как и у второго графика т.е
 x1 = np.array([-1115911, и тд...])
x2 = np.array([-1115911, и тд...])

графики сойдутся?

Офлайн

#5 Янв. 13, 2022 20:18:03

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сгладить графики

К сожалению вы формулируете задачу в терминах которых не существует в питоне, как и в любом другом языке программирования.
Когда вы говорите хочу получить “кривую”, то это невозможно. В питоне не бывает таких объектов как кривая. Есть числа функции классы, массивы, словари и т.п.
Например:

SergeyZh
В итоге получить фигуру похожую на эллипс
Вы можете вычислить координаты двух точек при помощи первой функции, и двух при помощи второй. потом запрограммировать функцию которая получит параметры эллипса проходящего через эти четыре точки.

Далее написать программу которая получает координаты x,y на этом эллипсе в зависимости от параметра - положения на этом эллипсе.

Сколько точек вы собираетесь вычислять на этом эллипсе я не знаю. Потенциально их бесконечно много.

Это решает задачу получения точек на кривой похожей на эллипс. Вас оно устроит? Вы это имели ввиду? Результат тут не “кривая” а функция получающая по одному числу два других входное число должно быть на отрезке 0-1.

Вы так формулируете задачу что ее невозможно понять однозначно даже человеку, который что то может додумать сам. А про ЭВМ я уж молчу, она потребует от вас математически точной и однозначной формулировки ваших желаний в тех терминах которые поддерживаются используемым языком.



Офлайн

#6 Янв. 14, 2022 13:46:41

SergeyZh
Зарегистрирован: 2022-01-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгладить графики

xam1816
графики сойдутся?
Да все верно они замкнуться, но прямыми отрезками, а мне нужно чтобы они замкнулись кривыми которые бы повторили кривизну верхней и нижней кривой

Офлайн

#7 Янв. 14, 2022 14:22:40

SergeyZh
Зарегистрирован: 2022-01-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгладить графики

doza_and
Когда вы говорите хочу получить “кривую”, то это невозможно. В питоне не бывает таких объектов как кривая.
К сожалению я не силён в терминологии которая применяется в программировании. Я просто ищу вариант решения своей проблемы с помощью кода а не графического редактора.
doza_and
Вы можете вычислить координаты двух точек при помощи первой функции, и двух при помощи второй. потом запрограммировать функцию которая получит параметры эллипса проходящего через эти четыре точки.
Не все так просто, это не простая формула эллипса который строится по 4 точкам. Это фигура прохожая на эллипс которая строится в два этапа, одна формула для верхнего квадранта, другая для нижнего. Но эти «полуэллипсы» не смыкаются. И я хочу достроить эти эллипсы с помощью кривых, сплайнов, линий (терминологию не знаю) но только чтобы они повторяли кривизну верней и нижней кривой.
Исходные формулы у меня есть готовые и excel формате. Просто Подставляете 3 значения и строится график с двумя кривыми

Я тут покапался и нашёл вот эти два примера. Вот это то что мне нужно. Есть линейная функция а через точки проходит сплайн (зелёный пунктир). Вот такой пунктир я хочу построить через точки в моем массиве. Второй пример аналогичен: есть голубая линия состоящая из 4 отрезков и есть оранжевая кривая которая пересекает все точки на синей линии.

Отредактировано SergeyZh (Янв. 14, 2022 14:39:36)

Прикреплённый файлы:
attachment forum2.png (824,4 KБ)

Офлайн

#8 Янв. 14, 2022 16:53:31

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1378
Репутация: +  123  -
Профиль   Отправить e-mail  

Сгладить графики

SergeyZh
Первый код содержит только один array который мне нужно сгладить но так чтобы новая кривая проходила через все точки.
я имел ввиду сделать вот по этим координатам X получить высчитатать Y

 x1 = np.array([-1115911, -1110000, -1080000, -1030000, -950000, -900000, -850000, -800000, -750000, -700000, -650000, -600000, -550000, -500000, -450000, -400000, -350000, -300000, -250000, -200000, -150000, -100000, -50000, 0, 50000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 450000, 500000, 550000, 600000, 650000, 700000, 750000, 800000, 850000, 900000, 950000, 1000000, 1021000])
x2 = np.array([-1115911, -1110000, -1080000, -1030000, -950000, -900000, -850000, -800000, -750000, -700000, -650000, -600000, -550000, -500000, -450000, -400000, -350000, -300000, -250000, -200000, -150000, -100000, -50000, 0, 50000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 450000, 500000, 550000, 600000, 650000, 700000, 750000, 800000, 850000, 900000, 950000, 1000000, 1021000])

Офлайн

#9 Янв. 14, 2022 22:34:36

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сгладить графики

SergeyZh
Я просто ищу вариант решения своей проблемы
Сейчас вы гораздо более понятно изложили.
Если вам надо построить картинку (те прямоугольную матрицу пикселов разных цветов), то так и надо говорить.
SergeyZh
И я хочу достроить эти эллипсы с помощью кривых, сплайнов, линий (терминологию не знаю) но только чтобы они повторяли кривизну верней и нижней кривой.
matplotlib всегда строит ломанную из отрезков прямых. Т.е. он ни при каких ухищрениях не позволяет сохранить кривизну, поскольку она всегда меняется скачками.

Вы можете взять больше точек, но из вашего поста непонятно как это делать. Могу предложить потребовать, чтобы евклидово расстояние между точками (sqrt(dx**2+dy**2)) не превышало заданную величину.

Те я бы на вашем месте ничего не достраивал, а просто сгустил точки на оси x в местах слияния верхней и нижней кривой. А потом построил графики в виде ломанных по этим данным.



Отредактировано doza_and (Янв. 14, 2022 22:36:16)

Офлайн

#10 Янв. 17, 2022 08:49:57

SergeyZh
Зарегистрирован: 2022-01-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Сгладить графики

doza_and
Те я бы на вашем месте ничего не достраивал, а просто сгустил точки на оси x в местах слияния верхней и нижней кривой. А потом построил графики в виде ломанных по этим данным.
Да это было бы идеально но к сожалению формула по которой я нахожу координаты Y больше точек не даёт потому-то с увеличением параметра Х в формуле получается отрицательное число под корнем и она выдаёт ошибку. Поэтому и получаются такие промежутки между верхней и нижней кривой.

Я пытался сделать через splprep но соединения получаются не такие как я хотел 😄
 import numpy as np
from scipy.interpolate import splprep, splev
import matplotlib.pyplot as plt
pts = np.array([
[	-844171.5868	,	130.0148215	],
[	-834825.1661	,	574.8615792	],
[	-825011.4244	,	1006.714268	],
[	-814706.9956	,	1428.978494	],
[	-803887.3454	,	1844.16212	],
[	-792526.7127	,	2254.169102	],
[	-780598.0483	,	2660.478414	],
[	-768072.9507	,	3064.258206	],
[	-754921.5983	,	3466.441321	],
[	-741112.6782	,	3867.776662	],
[	-726613.3121	,	4268.864829	],
[	-711388.9777	,	4670.183148	],
[	-695403.4266	,	5072.103279	],
[	-678618.5979	,	5474.903476	],
[	-660994.5278	,	5878.776843	],
[	-642489.2542	,	6283.836494	],
[	-623058.7169	,	6690.118216	],
[	-602656.6528	,	7097.581013	],
[	-581234.4854	,	7506.105789	],
[	-558741.2097	,	7915.492291	],
[	-535123.2702	,	8325.454348	],
[	-510324.4337	,	8735.613376	],
[	-484285.6553	,	9145.490018	],
[	-456944.9381	,	9554.493743	],
[	-428237.185	,	9961.910108	],
[	-398094.0443	,	10366.88531	],
[	-3.66E+05	,	1.08E+04	],
[	-333210.9338	,	11165.28426	],
[	-298316.4805	,	11556.11514	],
[	-261677.3045	,	11939.25843	],
[	-223206.1698	,	12312.79017	],
[	-182811.4782	,	12674.45358	],
[	-140397.0522	,	13021.59572	],
[	-95861.90476	,	13351.08734	],
[	-49100	,	13659.2199	],
[	0	,	13941.57105	],
[	42610	,	14152.55717	],
[	83190.95238	,	14323.99157	],
[	121839.4785	,	14460.24555	],
[	158647.5985	,	14565.13714	],
[	193702.951	,	14642.02227	],
[	227089.0009	,	14693.86672	],
[	258885.239	,	14723.30371	],
[	289167.3705	,	14732.68057	],
[	318007.4957	,	14724.09704	],
[	345474.2816	,	14699.43709	],
[	371633.1253	,	14660.39548	],
[	396546.3098	,	14608.50027	],
[	420273.1522	,	14545.13195	],
[	442870.145	,	14471.5398	],
[	464391.0905	,	14388.85606	],
[	484887.229	,	14298.10821	],
[	504407.361	,	14200.22967	],
[	522997.9628	,	14096.06918	],
[	540703.2979	,	13986.39906	],
[	557565.5218	,	13871.92255	],
[	573624.7827	,	13753.28024	],
[	588919.3169	,	13631.05588	],
[	603485.5399	,	13505.78153	],
[	617358.1332	,	13377.94219	],
[	630570.1269	,	13247.97991	],
[	643152.978	,	13116.29758	],
[	655136.6457	,	12983.26227	],
[	666549.6625	,	12849.20826	],
[	677419.2024	,	12714.43986	],
[	687771.1452	,	12579.23388	],
[	697630.1383	,	12443.84191	],
[	707019.6555	,	12308.49241	],
[	715962.0528	,	12173.3926	],
[	724478.6218	,	12038.73019	],
[	732589.6398	,	11904.67495	],
[	740314.4188	,	11771.38021	],
[	747671.3513	,	11638.98409	],
[	754677.9536	,	11507.61081	],
[	761350.9082	,	11377.37177	],
[	767706.103	,	11248.36655	],
[	773758.6695	,	11120.68391	],
[	779523.0186	,	10994.40261	],
[	785012.8749	,	10869.59223	],
[	790241.3094	,	10746.31392	],
[	795220.7709	,	10624.62105	],
[	799963.1151	,	10504.55984	],
[	804479.6334	,	10386.16997	],
[	808781.0795	,	10269.48508	],
[	812877.6947	,	10154.53327	],
[	816779.2331	,	10041.33758	],
[	820494.9839	,	9929.916352	],
[	824033.7942	,	9820.283691	],
[	827404.0897	,	9712.449775	],
[	830613.8949	,	9606.421202	],
[	833670.8523	,	9502.201299	],
[	836582.2403	,	9399.790404	],
[	839354.9908	,	9299.186129	],
[	841995.7055	,	9200.383604	],
[	844510.6719	,	9103.375702	],
[	846905.878	,	9008.153246	],
[	849187.0267	,	8914.705202	],
[	851359.5492	,	8823.01886	],
[	853428.6183	,	8733.079994	],
[	855399.1603	,	8644.873018	],
[	857275.8669	,	8558.381124	],
[	859063.2066	,	8473.586418	],
[	860765.4349	,	8390.470032	],
[	862386.6046	,	8309.012243	],
[	863930.5758	,	8229.19257	],
[	865401.0246	,	8150.989873	],
[	866801.452	,	8074.382439	],
[	868135.1924	,	7999.34806	],
[	869405.4213	,	7925.864114	],
[	870615.1632	,	7853.907626	],
[	871767.2982	,	7783.455339	],
[	872864.5698	,	7714.483765	],
[	873909.5902	,	7646.969241	],
[	874904.8479	,	7580.887981	],
[	875852.7122	,	7516.216119	],
[	876755.4402	,	7452.929746	],
[	877615.1812	,	7391.004956	],
[	878433.9821	,	7330.417874	],
[	879213.7924	,	7271.144692	],
[	879956.469	,	7213.161694	],
[	880663.78	,	7156.445285	],
[	881337.4095	,	7100.972013	],
[	881978.9614	,	7046.718592	],
[	882589.9633	,	6993.661922	],
[	883171.8698	,	6941.779102	],
[	883726.0665	,	6891.047454	],
[	884253.8728	,	6841.44453	],
[	884756.5456	,	6792.948127	],
[	885235.2815	,	6745.536299	],
[	885691.2205	,	6699.187367	],
[	886125.4481	,	6653.879926	],
[	886538.9981	,	6609.592853	],
[	886932.8554	,	6566.305317	],
[	887307.9575	,	6523.996779	],
[	887665.1976	,	6482.647	],
[	888005.4263	,	6442.236047	],
[	888329.4536	,	6402.744289	],
[	888638.0511	,	6364.152407	],
[	888931.9534	,	6326.441394	],
[	889211.8604	,	6289.59255	],
[	889478.4385	,	6253.587494	],
[	889732.3223	,	6218.408152	],
[	889974.1165	,	6184.036767	],
[	890204.3967	,	6150.45589	],
[	890423.7111	,	6117.648387	],
[	890632.582	,	6085.597429	],
[	890831.5067	,	6054.286497	],
[	891020.9588	,	6023.699378	],
[	891201.3893	,	5993.820161	],
[	891373.2279	,	5964.633237	],
[	891536.8837	,	5936.123292	],
[	891692.7464	,	5908.275311	],
[	891841.187	,	5881.074569	],
[	891982.5591	,	5854.506629	],
[	892117.1991	,	5828.557341	],
[	892245.4277	,	5803.212835	],
[	892367.5502	,	5778.459521	],
[	892483.8574	,	5754.284081	],
[	892594.6261	,	5730.673471	],
[	892700.1201	,	5707.614911	],
[	892800.5905	,	5685.095884	],
[	892896.2767	,	5663.104134	],
[	892987.4064	,	5641.627658	],
[	893074.1965	,	5620.654704	],
[	893156.8539	,	5600.173769	],
[	893235.5751	,	5580.173589	],
[	893310.5477	,	5560.643141	],
[	893381.9502	,	5541.571637	],
[	893449.9526	,	5522.948519	],
[	893514.7167	,	5504.763455	],
[	893576.3969	,	5487.006336	],
[	893635.1399	,	5469.667271	],
[	893691.0856	,	5452.736584	],
[	893744.3673	,	5436.204808	],
[	893795.1117	,	5420.062685	],
[	893843.4397	,	5404.301157	],
[	893889.4664	,	5388.911367	],
[	893933.3013	,	5373.884651	],
[	893975.0489	,	5359.212536	],
[	894014.8084	,	5344.886738	],
[	894052.6747	,	5330.899156	],
[	894088.7378	,	5317.241868	],
[	894123.0836	,	5303.907129	],
[	894155.7939	,	5290.887367	],
[	894186.9466	,	5278.175178	],
[	894216.6158	,	5265.763325	],
[	894244.8722	,	5253.644733	],
[	894271.7831	,	5241.812485	],
[	894297.4124	,	5230.25982	],
[	894321.8214	,	5218.98013	],
[	894345.068	,	5207.966956	],
[	894367.2076	,	5197.213983	],
[	894388.2929	,	5186.715042	],
[	894408.3742	,	5176.4641	],
[	894427.4993	,	5166.455264	],
[	894445.7136	,	5156.682773	],
[	894463.0606	,	5147.140996	],
[	894479.5815	,	5137.824431	],
[	894495.3157	,	5128.727702	],
[	894510.3007	,	5119.845554	],
[	894524.5721	,	5111.172851	],
[	894538.1639	,	5102.704575	],
[	894551.1084	,	5094.435823	],
[	894563.4366	,	5086.361802	],
[	894575.1777	,	5078.477829	],
[	894586.3597	,	5070.779327	],
[	894597.0093	,	5063.261826	],
[	894607.1517	,	5055.920953	],
[	894616.8111	,	5048.75244	],
[	894626.0106	,	5041.752112	],
[	894634.772	,	5034.915891	],
[	894643.1162	,	5028.239792	],
[	894651.063	,	5021.719918	],
[	894658.6315	,	5015.352464	],
[	894665.8395	,	5009.133709	],
[	894672.7043	,	5003.060018	],
[	894679.2422	,	4997.127835	],
[	894685.4687	,	4991.333688	],
[	894691.3988	,	4985.674181	],
[	894697.0465	,	4980.145995	],
[	894702.4252	,	4974.745887	],
[	894707.5478	,	4969.470683	],
[	894712.4265	,	4964.317284	],
[	894717.0729	,	4959.282657	],
[	894721.498	,	4954.363838	],
[	894725.7123	,	4949.557927	],
[	894729.726	,	4944.862089	],
[	894733.5486	,	4940.273551	],
[	894737.1891	,	4935.789601	],
[	894740.6563	,	4931.407583	],
[	894743.9584	,	4927.124902	],
[	894747.1032	,	4922.939016	],
[	894750.0983	,	4918.847438	],
[	894752.9508	,	4914.847733	],
[	894755.6674	,	4910.937516	],
[	894758.2547	,	4907.114452	],
[	894760.7187	,	4903.376255	],
[	894763.0655	,	4899.720683	],
[	894765.3005	,	4896.145538	],
[	894767.429	,	4892.648668	],
[	894769.4562	,	4889.22796	],
[	894771.3869	,	4885.88134	],
[	894773.2256	,	4882.606774	],
[	894774.9767	,	4879.402263	],
[	894776.6445	,	4876.265845	],
[	894778.2329	,	4873.195587	],
[	894779.7456	,	4870.189591	],
[	894781.1863	,	4867.245987	],
[	894782.5584	,	4864.362931	],
[	894783.8651	,	4861.538607	],
[	894785.1096	,	4858.771219	],
[	894786.2949	,	4856.058996	],
[	894787.4237	,	4853.400182	],
[	894788.4988	,	4850.79304	],
[	894789.5226	,	4848.235843	],
[	894790.4977	,	4845.726876	],
[	894791.4264	,	4843.264432	],
[	894792.3109	,	4840.846806	],
[	894793.1532	,	4838.472293	],
[	894793.9554	,	4836.139181	],
[	894794.7195	,	4833.845749	],
[	894795.4471	,	4831.590262	],
[	894796.1401	,	4829.370958	],
[	894796.8001	,	4827.18605	],
[	894797.4287	,	4825.033707	],
[	894798.0273	,	4822.912053	],
[	894798.5974	,	4820.81915	],
[	894799.1404	,	4818.752983	],
[	894799.6575	,	4816.711446	],
[	894800.15	,	4814.69232	],
[	894800.6191	,	4812.693247	],
[	894801.0658	,	4810.7117	],
[	894801.4912	,	4808.74494	],
[	894801.8964	,	4806.789974	],
[	894802.2823	,	4804.843485	],
[	894802.6498	,	4802.901751	],
[	894802.9998	,	4800.960538	],
[	894803.3332	,	4799.01495	],
[	894803.6506	,	4797.059228	],
[	894803.953	,	4795.086461	],
[	894804.2409	,	4793.088172	],
[	894804.5152	,	4791.053685	],
[	894804.7764	,	4788.969152	],
[	894805.0251	,	4786.815922	],
[	894805.262	,	4784.567707	],
[	846905.878	,	4.47584112	],
[	844510.6719	,	-67.43955138	],
[	841995.7055	,	-142.3070924	],
[	839354.9908	,	-220.2266185	],
[	836582.2403	,	-301.2999633	],
[	833670.8523	,	-385.6309178	],
[	830613.8949	,	-473.3251852	],
[	827404.0897	,	-564.4903307	],
[	824033.7942	,	-659.2357237	],
[	820494.9839	,	-757.6724744	],
[	816779.2331	,	-859.9133629	],
[	812877.6947	,	-966.0727594	],
[	808781.0795	,	-1076.266537	],
[	804479.6334	,	-1190.611971	],
[	799963.1151	,	-1309.227636	],
[	795220.7709	,	-1432.233278	],
[	790241.3094	,	-1559.749682	],
[	785012.8749	,	-1691.898522	],
[	779523.0186	,	-1828.802196	],
[	773758.6695	,	-1970.583631	],
[	767706.103	,	-2117.366079	],
[	761350.9082	,	-2269.272883	],
[	754677.9536	,	-2426.427208	],
[	747671.3513	,	-2588.951751	],
[	740314.4188	,	-2756.968407	],
[	732589.6398	,	-2930.597897	],
[	7.24E+05	,	-3109.959347	],
[	715962.0528	,	-3295.169818	],
[	707019.6555	,	-3486.343777	],
[	697630.1383	,	-3683.592492	],
[	687771.1452	,	-3887.023364	],
[	677419.2024	,	-4096.739164	],
[	666549.6625	,	-4312.837174	],
[	655136.6457	,	-4535.40822	],
[	643152.978	,	-4764.535577	],
[	630570.1269	,	-5000.29373	],
[	617358.1332	,	-5242.746979	],
[	603485.5399	,	-5491.947852	],
[	588919.3169	,	-5747.935309	],
[	573624.7827	,	-6010.732709	],
[	557565.5218	,	-6280.345492	],
[	540703.2979	,	-6556.758548	],
[	522997.9628	,	-6839.93322	],
[	504407.361	,	-7129.803871	],
[	484887.229	,	-7426.273975	],
[	464391.0905	,	-7729.211616	],
[	442870.145	,	-8038.44432	],
[	420273.1522	,	-8353.753101	],
[	396546.3098	,	-8674.865557	],
[	371633.1253	,	-9001.447865	],
[	345474.2816	,	-9333.095436	],
[	318007.4957	,	-9669.32198	],
[	289167.3705	,	-10009.54661	],
[	258885.239	,	-10353.07861	],
[	227089.0009	,	-10699.09921	],
[	193702.951	,	-11046.63982	],
[	158647.5985	,	-11394.55563	],
[	121839.4785	,	-11741.49341	],
[	83190.95238	,	-12085.85185	],
[	42610	,	-12425.73216	],
[	0	,	-12758.87574	],
[	-49100	,	-13112.69561	],
[	-95861.90476	,	-13419.62538	],
[	-140397.0522	,	-13684.40157	],
[	-182811.4782	,	-13911.17231	],
[	-223206.1698	,	-14103.59538	],
[	-261677.3045	,	-14264.91491	],
[	-298316.4805	,	-14398.02242	],
[	-333210.9338	,	-14505.50616	],
[	-366443.7465	,	-14589.69133	],
[	-398094.0443	,	-14652.67342	],
[	-428237.185	,	-14696.34603	],
[	-456944.9381	,	-14722.42432	],
[	-484285.6553	,	-14732.46491	],
[	-510324.4337	,	-14727.88297	],
[	-535123.2702	,	-14709.96689	],
[	-558741.2097	,	-14679.89104	],
[	-581234.4854	,	-14638.72691	],
[	-602656.6528	,	-14587.45277	],
[	-623058.7169	,	-14526.96229	],
[	-642489.2542	,	-14458.07206	],
[	-660994.5278	,	-14381.5283	],
[	-678618.5979	,	-14298.0128	],
[	-695403.4266	,	-14208.14818	],
[	-711388.9777	,	-14112.50266	],
[	-726613.3121	,	-14011.59421	],
[	-741112.6782	,	-13905.89431	],
[	-754921.5983	,	-13795.83135	],
[	-768072.9507	,	-13681.79351	],
[	-780598.0483	,	-13564.13147	],
[	-792526.7127	,	-13443.1607	],
[	-803887.3454	,	-13319.1635	],
[	-814706.9956	,	-13192.39071	],
[	-825011.4244	,	-13063.06321	],
[	-834825.1661	,	-1.29E+04	],
[	-844171.5868	,	-12797.48478	],
[	-853072.9398	,	-12661.53517	],
[	-861550.4188	,	-12523.63451	],
[	-869624.2084	,	-12383.86607	],
[	-877313.5318	,	-12242.28581	],
[	-884636.697	,	-12098.92157	],
[	-891611.14	,	-11953.77161	],
[	-898253.4666	,	-11806.80262	],
[	-904579.492	,	-11657.94681	],
[	-910604.2781	,	-11507.09797	],
[	-916342.1697	,	-11354.10615	],
[	-921806.8282	,	-11198.77043	],
[	-927011.265	,	-11040.82913	],
[	-931967.8714	,	-10879.94639	],
[	-936688.449	,	-10715.6936	],
[	-941184.2371	,	-10547.523	],
[	-945465.9401	,	-10374.72948	],
[	-949543.7525	,	-10196.39358	],
[	-953427.3833	,	-10011.29318	],
[	-957126.0794	,	-9817.760331	],
[	-960648.647	,	-9613.435582	],
[	-964003.4733	,	-9394.813356	],
[	-967198.546	,	-9156.311169	],
[	-970241.4724	,	-8888.065137	],
[	-973139.4975	,	-8569.343378	],
[	-975899.5215	,	-8137.250486	]])
tck, u = splprep(pts.T, u=None, s=0, per=1) 
u_new = np.linspace(u.min(), u.max(), 1000)
x_new, y_new = splev(u_new, tck, der=0)
plt.plot(pts[:,0], pts[:,1], 'ro')
plt.plot(x_new, y_new, 'b--')
plt.show()

Отредактировано SergeyZh (Янв. 17, 2022 09:54:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version