Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аналитическая формула дуги 
:(
    Опции темы
mrgloom
Дата 19.7.2012, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



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

Добавлено через 2 минуты и 29 секунд
и да дуга в общем случае не ложится на окружность, т.е. к одному концу может быть более выгнутая.
PM MAIL   Вверх
mrgloom
Дата 19.7.2012, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



пример данных

Цитата

Номер    Коорд. X    Коорд. Y
1    628    101
2    624    161
3    620    233
4    610    373
5    600    505
6    586    736
7    580    864
8    572    989
9    564    1120
10    555    1250
11    557    1350
12    554    1470
13    551    1600
14    548    1720
15    546    1850
16    546    1970
17    543    2090
18    545    2220
19    545    2340
20    549    2460
21    550    2590
22    554    2710
23    559    2840
24    563    2960
25    571    3090
26    576    3210
27    586    3330
28    589    3380
29    598    3500
30    616    3720
31    623    3770
32    592    611
33    606    3600 

PM MAIL   Вверх
mrgloom
Дата 19.7.2012, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



попробовал интерполяцию полиномом отсюда
http://alexeypetrov.narod.ru/C/sqr_less_about.html

но не понятен момент, допустим я беру степень полинома 5 и 2 последних члена =0, то ли не надо такую большую степень брать, то ли точности не хватает, а при бОльших степенях вообще не выводит.

еще вопрос адекватно ли сравнивать 2 полинома по их коэффициентам? и какую на этом можно построить метрику? 

PM MAIL   Вверх
baldina
Дата 19.7.2012, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(mrgloom @  19.7.2012,  09:43 Найти цитируемый пост)
 мне как то выработать методику их сравнения чтобы сравнить на сколько они отличаются

вы что в итоге получить хотите? если хотеть неизвестное, можно получить неопределенное
PM MAIL   Вверх
Pavia
Дата 19.7.2012, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



mrgloom, 
Цитата(mrgloom @  19.7.2012,  14:42 Найти цитируемый пост)
 5

Для дуги надо 2. 5 это много
PM MAIL   Вверх
mrgloom
Дата 19.7.2012, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



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

тогда стоит поставить вопрос так сравнимы ли куски полиномов одной степени?
PM MAIL   Вверх
mrgloom
Дата 19.7.2012, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



там вообще задача сводится к нахождению центра из которого идет подсчет и параметра конст 
(x,y)->(u,v)  

Цитата

u= x+Const*(x*x+y*y)*x;
v=y+Const*(x*x+y*y)*y;


хотя центр наверно можно задать так 

Цитата

u= Сx+x+Const*(x*x+y*y)*x;
v= Cy+y+Const*(x*x+y*y)*y;



т.е. на 2Д плоскости мы имеем несколько дуг, типа изолиний, которые нам сформировала данная функция и надо по этим дугам восстановить функцию.

Добавлено через 2 минуты и 14 секунд
т.е. наверно мне надо эту функцию аппроксимировать точками, только вот каким методом?

Это сообщение отредактировал(а) mrgloom - 19.7.2012, 17:38
PM MAIL   Вверх
Pavia
Дата 19.7.2012, 19:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Цитата(mrgloom @  19.7.2012,  17:38 Найти цитируемый пост)
т.е. на 2Д плоскости мы имеем несколько дуг, типа изолиний, которые нам сформировала данная функция и надо по этим дугам восстановить функцию.Добавлено через 2 минуты и 14 секундт.е. наверно мне надо эту функцию аппроксимировать точками, только вот каким методом?

Ты хоть сам то понял что сказал?
PM MAIL   Вверх
mrgloom
Дата 20.7.2012, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



объясняю на картинках

вот есть 4 дуги, я могу получить точки с каким либо шагом которые лежат на этих дугах.(теоретическия могу получить еще дуги на большем меньшем расстоянии от центра для точности)
http://db.tt/jAx7fCdK
эти дуги соответствуют примерно вот такому искажению
http://db.tt/jud2Iki8
т.е. параметры этого искажения мне надо определить.

искажение описывается таким образом
Цитата

u= Сx+x+К1*(x*x+y*y)*x;
v= Cy+y+К2*(x*x+y*y)*y;


ситуация может осложняться тем, что до искажения могут быть еще перспективные искажения.
http://db.tt/Di6XHmY9

т.е. получается что то типа
http://db.tt/vVPn6wRz
или
http://db.tt/IK12lXfG
т.е. в общем случае по этим дугам необходимо определить матрицу 3х3 перспективных искажений+параметры искажения описанного выше.

заодно спрошу про матрицу
m11 m12 m13
m21 m22 m23
m31 m32 m33

1)m33 всегда =1?
2)m11=m22=cos(phi) , m12=-m21=-sin(phi) ?  (пробовал крутить в гимпе Perspective tool там значения этих элементов получались больше 1)
3) если m13 m23 сдвиг, то как можно назвать m31 m32?

Это сообщение отредактировал(а) mrgloom - 20.7.2012, 09:55
PM MAIL   Вверх
mrgloom
Дата 20.7.2012, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



полное преобразование наверно будет выглядеть так

Цитата

u= (m11*x + m12*y + m13)/(m31*x + m32*y + m33)+Сx+x+К1*(x*x+y*y)*x;
v= (m21*x + m22*y + m23)/(m31*x + m32*y + m33)+Cy+y+К2*(x*x+y*y)*y;


получается, что мне дугу надо как то развернуть в прямую, а то получается у меня есть только конечные координаты.
а потом используя конечные и начальные координаты определить 13 параметров, т.е. получается надо 13 точек-соответствий, а если точек будет больше то можно как то увеличить точность? какой метод применяется?
PM MAIL   Вверх
mrgloom
Дата 20.7.2012, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



или даже несмотря на вышеописанную точную формулу взять и все эти точки и получить двумерный полином через регрессию?

только мне надо, как бы не двумерную функцию, а поле заданное из центральной точки с зависимостью U(x,y) V(x,y), не очень понятно как его задать.

пример данных
Цитата

Номер    Коорд. X    Коорд. Y
1    628    101
2    624    161
3    620    233
4    610    373
5    600    505
6    586    736
7    580    864
8    572    989
9    564    1120
10    555    1250
11    557    1350
12    554    1470
13    551    1600
14    548    1720
15    546    1850
16    546    1970
17    543    2090
18    545    2220
19    545    2340
20    549    2460
21    550    2590
22    554    2710
23    559    2840
24    563    2960
25    571    3090
26    576    3210
27    586    3330
28    589    3380
29    598    3500
30    616    3720
31    623    3770
32    592    611
33    606    3600
34    695    93,1
35    765    87
36    857    78,5
37    922    72,6
38    997    67,1
39    1070    61,6
40    1150    56,2
41    1210    52,5
42    1280    48,5
43    1350    45,3
44    1420    42,6
45    1490    40,4
46    1550    38,3
47    1610    36,3
48    1680    35,6
49    1750    33,9
50    1820    33,7
51    1880    33
52    1940    32,6
53    2000    32,6
54    2060    32,6
55    2110    33
56    2150    33,2
57    2200    33
58    2250    33,4
59    2290    35
60    2340    35,2
61    2400    36,9
62    2450    38
63    2490    38,7
64    2540    40
65    2580    41,8
66    2620    42,4
67    2660    44,8
68    2700    45,9
69    2750    47,9
70    2790    50,3
71    2840    51,4
72    2880    53,6
73    2940    56
74    2980    59
75    3030    61,9
76    3070    63
77    3110    65,6
78    3160    68,4
79    3210    71,9
80    3260    75,2
81    3320    79,6
82    3370    83,9
83    3420    87,9
84    3460    90,3
85    3510    94,2
86    3560    99,7
87    3610    104
88    3670    110
89    3730    115
90    3780    120
91    3820    124
92    3850    126
93    3860    171
94    3870    225
95    3870    282
96    3880    334
97    3880    389
98    3890    454
99    3900    498
100    3900    550
101    3910    602
102    3910    654
103    3910    707
104    3920    754
105    3920    803
106    3930    849
107    3930    895
108    3930    941
109    3940    986
110    3940    1020
111    3940    1070
112    3940    1120
113    3940    1160
114    3950    1210
115    3950    1250
116    3950    1290
117    3950    1330
118    3950    1380
119    3950    1410
120    3960    1450
121    3960    1500
122    3960    1540
123    3960    1570
124    3960    1630
125    3960    1670
126    3960    1730
127    3960    1780
128    3960    1830
129    3960    1870
130    3960    1910
131    3960    1950
132    3960    2000
133    3960    2050
134    3960    2090
135    3960    2150
136    3960    2200
137    3960    2260
138    3960    2310
139    3960    2360
140    3960    2420
141    3960    2480
142    3950    2540
143    3950    2590
144    3950    2640
145    3950    2680
146    3950    2720
147    3950    2760
148    3950    2790
149    3940    2850
150    3940    2900
151    3940    2960
152    3940    3010
153    3930    3050
154    3930    3090
155    3930    3140
156    3930    3180
157    3920    3230
158    3920    3270
159    3920    3310
160    3910    3360
161    3910    3410
162    3910    3460
163    3900    3520
164    3900    3570
165    3900    3610
166    3890    3670
167    3890    3720
168    3820    3730
169    3760    3740
170    3690    3750
171    3620    3750
172    3560    3760
173    3510    3770
174    3450    3770
175    3380    3780
176    3320    3780
177    3250    3790
178    3200    3790
179    3150    3800
180    3100    3800
181    3060    3800
182    3010    3800
183    2960    3810
184    2910    3810
185    2860    3810
186    2800    3810
187    2750    3820
188    2700    3820
189    2660    3820
190    2620    3820
191    2580    3820
192    2520    3820
193    2470    3820
194    2420    3830
195    2370    3830
196    2320    3830
197    2270    3830
198    2210    3830
199    2160    3830
200    2090    3830
201    2020    3830
202    1920    3830
203    1970    3830
204    1860    3830
205    1790    3830
206    1710    3830
207    1660    3830
208    1590    3820
209    1530    3820
210    1470    3820
211    1420    3820
212    1370    3820
213    1320    3820
214    1270    3810
215    1200    3810
216    1140    3810
217    1080    3800
218    1020    3800
219    948    3790
220    883    3790
221    827    3790
222    765    3780
223    704    3780
224    654    3770


так это выглядит в точках
9    564    1120
10    555    1250
11    557    1350
12    554    1470
13    551    1600
14    548    1720
15    546    1850
16    546    1970
17    543    2090
18    545    2220
19    545    2340
20    549    2460
21    550    2590
22    554    2710
23    559    2840
24    563    2960
25    571    3090
26    576    3210
27    586    3330
28    589    3380
29    598    3500
30    616    3720
31    623    3770
32    592    611
33    606    3600
34    695    93,1
35    765    87
36    857    78,5
37    922    72,6
38    997    67,1
39    1070    61,6
40    1150    56,2
41    1210    52,5
42    1280    48,5
43    1350    45,3
44    1420    42,6
45    1490    40,4
46    1550    38,3
47    1610    36,3
48    1680    35,6
49    1750    33,9
50    1820    33,7
51    1880    33
52    1940    32,6
53    2000    32,6
54    2060    32,6
55    2110    33
56    2150    33,2
57    2200    33
58    2250    33,4
59    2290    35
60    2340    35,2
61    2400    36,9
62    2450    38
63    2490    38,7
64    2540    40
65    2580    41,8
66    2620    42,4
67    2660    44,8
68    2700    45,9
69    2750    47,9
70    2790    50,3
71    2840    51,4
72    2880    53,6
73    2940    56
74    2980    59
75    3030    61,9
76    3070    63
77    3110    65,6
78    3160    68,4
79    3210    71,9
80    3260    75,2
81    3320    79,6
82    3370    83,9
83    3420    87,9
84    3460    90,3
85    3510    94,2
86    3560    99,7
87    3610    104
88    3670    110
89    3730    115
90    3780    120
91    3820    124
92    3850    126
93    3860    171
94    3870    225
95    3870    282
96    3880    334
97    3880    389
98    3890    454
99    3900    498
100    3900    550
101    3910    602
102    3910    654
103    3910    707
104    3920    754
105    3920    803
106    3930    849
107    3930    895
108    3930    941
109    3940    986
110    3940    1020
111    3940    1070
112    3940    1120
113    3940    1160
114    3950    1210
115    3950    1250
116    3950    1290
117    3950    1330
118    3950    1380
119    3950    1410
120    3960    1450
121    3960    1500
122    3960    1540
123    3960    1570
124    3960    1630
125    3960    1670
126    3960    1730
127    3960    1780
128    3960    1830
129    3960    1870
130    3960    1910
131    3960    1950
132    3960    2000
133    3960    2050
134    3960    2090
135    3960    2150
136    3960    2200
137    3960    2260
138    3960    2310
139    3960    2360
140    3960    2420
141    3960    2480
142    3950    2540
143    3950    2590
144    3950    2640
145    3950    2680
146    3950    2720
147    3950    2760
148    3950    2790
149    3940    2850
150    3940    2900
151    3940    2960
152    3940    3010
153    3930    3050
154    3930    3090
155    3930    3140
156    3930    3180
157    3920    3230
158    3920    3270
159    3920    3310
160    3910    3360
161    3910    3410
162    3910    3460
163    3900    3520
164    3900    3570
165    3900    3610
166    3890    3670
167    3890    3720
168    3820    3730
169    3760    3740
170    3690    3750
171    3620    3750
172    3560    3760
173    3510    3770
174    3450    3770
175    3380    3780
176    3320    3780
177    3250    3790
178    3200    3790
179    3150    3800
180    3100    3800
181    3060    3800
182    3010    3800
183    2960    3810
184    2910    3810
185    2860    3810
186    2800    3810
187    2750    3820
188    2700    3820
189    2660    3820
190    2620    3820
191    2580    3820
192    2520    3820
193    2470    3820
194    2420    3830
195    2370    3830
196    2320    3830
197    2270    3830
198    2210    3830
199    2160    3830
200    2090    3830
201    2020    3830
202    1920    3830
203    1970    3830
204    1860    3830
205    1790    3830
206    1710    3830
207    1660    3830
208    1590    3820
209    1530    3820
210    1470    3820
211    1420    3820
212    1370    3820
213    1320    3820
214    1270    3810
215    1200    3810
216    1140    3810
217    1080    3800
218    1020    3800
219    948    3790
220    883    3790
221    827    3790
222    765    3780
223    704    3780
224    654    3770

так это выглядит в точках
http://dl.dropbox.com/u/8841028/Graph_points.png
в итоге я хочу получить картинку типа такой и коэффициенты полинома
http://www.radiomaster.ru/cad/mc12/glava_13/30.gif

Это сообщение отредактировал(а) mrgloom - 20.7.2012, 11:41
PM MAIL   Вверх
Pavia
Дата 20.7.2012, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



mrgloom, 
Цитата

u= Сx+x+К1*(x*x+y*y)*x;
v= Cy+y+К2*(x*x+y*y)*y;

Используй МНК.

Цитата

1)m33 всегда =1?

Спроси у создателей Гимпа. Скорее всего да. Это из перспективы выводится. 

2) 
Цитата
m11=m22=cos(phi) , m12=-m21=-sin(phi) ?  

нет конечно. 


M это матрица. Её можно представить в виде. 
M=I*A*R_X*R_Y*R_Z*T
I - единичная матрица
A - матрица масштаба 
R_X,R_Y,R_Z матрицы поворота относительно оси.
T - матрица переноса


3) Матрица это матрица зачем что-то выдумывать? Вообщето они за поворот по X и Y отвечают.
M*V
V=(X,Y,1)^t

New_X:=m11*X+m12*Y+m13*1
New_Y:=m21*X+m22*Y+m23*1
New_Z:=m31*X+m32*Y+m33*1

u=New_X/New_Z
v=New_Y/New_Z


PM MAIL   Вверх
mrgloom
Дата 20.7.2012, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



нашел где можно попробовать curve fitting для различных функций, только не понятно как задавать мою функцию
http://zunzun.com/

Цитата

u= (m11*x + m12*y + m13)/(m31*x + m32*y + m33)+С1+x+К1*(x*x+y*y)*x;
v= (m21*x + m22*y + m23)/(m31*x + m32*y + m33)+C2+y+К2*(x*x+y*y)*y;


или надо выразить u(v)?только непонятно возможно ли это?
по сути у меня есть только точки (u,v), а точек (x,y) у меня нету.

PM MAIL   Вверх
mrgloom
Дата 20.7.2012, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Цитата(Pavia @  20.7.2012,  11:48 Найти цитируемый пост)
Используй МНК.

я просто не понимаю как мне задачу сформулировать под МНК если у меня есть
Цитата

u= (m11*x + m12*y + m13)/(m31*x + m32*y + m33)+С1+x+К1*(x*x+y*y)*x;
v= (m21*x + m22*y + m23)/(m31*x + m32*y + m33)+C2+y+К2*(x*x+y*y)*y;

и набор (u,v) точек.
т.е. как вписать дугу состоящую из точек в полином я знаю, но это не то.
не знаю возможно можно можно игнорировать вышеприведенную формулу и работать только с множеством точек u(v), но тогда какую модель выбирать? двумерный полином?

Цитата

m11=m22=cos(phi) , m12=-m21=-sin(phi) ?  

нет конечно. 

http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%BE%D1%82%D0%B0
матрица поворота вокруг оси Z. или это не то всё таки?

Цитата

M это матрица. Её можно представить в виде. 
M=I*A*R_X*R_Y*R_Z*T

как такая декомпозиция называется? и я не понимаю почему у нас фигурирует еще и координата Z мы же вроде на плоскости работаем? 


Цитата

1)m33 всегда =1?

Спроси у создателей Гимпа. Скорее всего да. Это из перспективы выводится. 

вроде бы афинные  преобразования когда 6 неизвестных, а перспективные преобразования когда 8 , но так и не понятно может быть, что m33 не =1 и как такое преобразование называется.
PM MAIL   Вверх
Pavia
Дата 20.7.2012, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Цитата(mrgloom @  20.7.2012,  12:32 Найти цитируемый пост)
?только непонятно возможно ли это?

Невозможно.
Цитата

а точек (x,y) у меня нету.


Разбей свои точки на 4 кривых. 
К примеру левая вертикальная. 
x=0 y=0...1 шаг возьми равномерным по числу точек.

Аналогично для других 3 кривых.


Это сообщение отредактировал(а) Pavia - 20.7.2012, 12:57
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0574 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.