Карта эллипсов дисперсии по мат. ожиданию, осям и углу
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Карта эллипсов дисперсии по мат. ожиданию, осям и углу
Здравствуйте. Кто-нибудь имел опыт в R рисования карты эллипсов дисперсии по мат. ожиданию, осям и углу между его главной осью и мат. ожиданием? Примерно как:
www.pmel.noaa.gov/maillists/tmap/ferret ... 00315.html
www.pmel.noaa.gov/maillists/tmap/ferret ... 00315.html
Последний раз редактировалось nickleb 21 окт 2015, 07:09, всего редактировалось 5 раз.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Карта эллипсов дисперсии по мат. ожиданию, осям и углом
403
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Карта эллипсов дисперсии по мат. ожиданию, осям и углом
Denis, исправил ссылку...Denis Rykov писал(а):403
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Карта эллипсов дисперсии по мат. ожиданию, осям и углом
нетnickleb писал(а):исправил ссылку
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Карта эллипсов дисперсии по мат. ожиданию, осям и углом
извините... вот так сейчас: и здесь, и в первом сообщении темы:Максим Дубинин писал(а):нетnickleb писал(а):исправил ссылку
www.pmel.noaa.gov/maillists/tmap/ferret ... 00315.html
-
- Гуру
- Сообщения: 4067
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1062
- Ваше звание: программист
- Откуда: Казань
Re: Карта эллипсов дисперсии по мат. ожиданию, осям и углом
Код: Выделить всё
my.ellipse<-function(x0,y0,a,b,ell.angle,ell.segm=48,print=TRUE) {
# horisonl ellipse
xy<-matrix(ncol=2,nrow=ell.segm+1)
for(i in 1:ell.segm) {
ang<-2*pi/ell.segm
x<-cos((i-1)*ang)*a
y<-sin((i-1)*ang)*b
xy[i,]<-c(x,y)
}
xy[ell.segm+1,]<-xy[1,]
# turn ellipse
ell.sin<-sin(ell.angle/180*pi)
ell.cos<-cos(ell.angle/180*pi)
mtr<-matrix(c(ell.cos,ell.sin,-ell.sin,ell.cos),ncol=2,nrow=2)
xy1<-t((mtr %*% t(xy)) + c(x0,y0))
if(print) points(xy1,type="l",lwd=3)
invisible(xy1)
}
pos<-expand.grid(1:10*10,1:5*10)
plot(0,0,xlim=c(0,105),ylim=c(0,55),asp=1,type="n")
for(i in 1:nrow(pos)) {
x0<-pos[i,1] # center position
y0<-pos[i,2] # center position
a<-runif(1,0.1,5) # "main" semiaxis
b<-runif(1,0.1,5) # "secondary" semiaxis
ang<-runif(1,0,360) # angle
my.ellipse(x0,y0,a,b,ang,ell.segm=48,print=TRUE)
}
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Карта эллипсов дисперсии по мат. ожиданию, осям и углом
Ваш пример сработал, gamm. Спасибо! Буду пробовать адаптировать для себя.gamm писал(а):главная полуось горизонтальна, поворот - против часовой от горизонтали.Код: Выделить всё
my.ellipse<-function(x0,y0,a,b,ell.angle,ell.segm=48,print=TRUE) { # horisonl ellipse xy<-matrix(ncol=2,nrow=ell.segm+1) for(i in 1:ell.segm) { ang<-2*pi/ell.segm x<-cos((i-1)*ang)*a y<-sin((i-1)*ang)*b xy[i,]<-c(x,y) } xy[ell.segm+1,]<-xy[1,] # turn ellipse ell.sin<-sin(ell.angle/180*pi) ell.cos<-cos(ell.angle/180*pi) mtr<-matrix(c(ell.cos,ell.sin,-ell.sin,ell.cos),ncol=2,nrow=2) xy1<-t((mtr %*% t(xy)) + c(x0,y0)) if(print) points(xy1,type="l",lwd=3) invisible(xy1) } pos<-expand.grid(1:10*10,1:5*10) plot(0,0,xlim=c(0,105),ylim=c(0,55),asp=1,type="n") for(i in 1:nrow(pos)) { x0<-pos[i,1] # center position y0<-pos[i,2] # center position a<-runif(1,0.1,5) # "main" semiaxis b<-runif(1,0.1,5) # "secondary" semiaxis ang<-runif(1,0,360) # angle my.ellipse(x0,y0,a,b,ang,ell.segm=48,print=TRUE) }
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя