R FUNKSIYASI YORDAMIDA MURAKKAB 3D OBYEKTLARNI QURISH

Annotasiya

R dasturlash tili ko'pincha ma'lumotlarni tahlil qilish va statistik modellashtirish uchun ishlatiladi, lekin R funksiyada (bundan keyin R deb yuritiladi) 3D grafik va geometrik modellarni yaratish ham mumkin. Ayniqsa, `rgl` va `plot3D` kabi paketlar yordamida murakkab 3D obyektlarni qurish, ularni manipulyatsiya qilish va turli burchaklardan vizualizatsiya qilish imkoni mavjud. Ushbu maqolada R funksiyalari yordamida murakkab 3D obyektlarni qanday qurish mumkinligini batafsil ko'rib chiqamiz.

Manba turi: Konferentsiyalar
Yildan beri qamrab olingan yillar 2022
inLibrary
Google Scholar
Chiqarish:
9-11
19

Кўчирилди

Кўчирилганлиги хақида маълумот йук.
Ulashish
Nuraliyev, F., & Inoyatov , M. . (2024). R FUNKSIYASI YORDAMIDA MURAKKAB 3D OBYEKTLARNI QURISH. Наука и технология в современном мире, 3(11), 9–11. Retrieved from https://www.inlibrary.uz/index.php/zdift/article/view/52104
Crossref
Сrossref
Scopus
Scopus

Annotasiya

R dasturlash tili ko'pincha ma'lumotlarni tahlil qilish va statistik modellashtirish uchun ishlatiladi, lekin R funksiyada (bundan keyin R deb yuritiladi) 3D grafik va geometrik modellarni yaratish ham mumkin. Ayniqsa, `rgl` va `plot3D` kabi paketlar yordamida murakkab 3D obyektlarni qurish, ularni manipulyatsiya qilish va turli burchaklardan vizualizatsiya qilish imkoni mavjud. Ushbu maqolada R funksiyalari yordamida murakkab 3D obyektlarni qanday qurish mumkinligini batafsil ko'rib chiqamiz.


background image

`

9

R FUNKSIYASI YORDAMIDA MURAKKAB 3D OBYEKTLARNI QURISH

Nuraliyev Faxriddin Murodillayevich

“Televizion va media texnologiyalar” kafedrasi mudiri, texnika fanlari doktori,

professor, Muhammad Al-Xorazmiy nomidagi TATU

Inoyatov Mirzayor Baxtiyor ug’li

“Chizma geometriya va kompyuter grafikasi”

kafedrasi assistenti, Islom Karimov nomidagi

Toshkent Davlat Texnika Universiteti

https://doi.org/10.5281/zenodo.13903948

Kirish

R dasturlash tili ko'pincha ma'lumotlarni tahlil qilish va statistik modellashtirish uchun

ishlatiladi, lekin R funksiyada (bundan keyin R deb yuritiladi) 3D grafik va geometrik
modellarni yaratish ham mumkin. Ayniqsa, `rgl` va `plot3D` kabi paketlar yordamida murakkab
3D obyektlarni qurish, ularni manipulyatsiya qilish va turli burchaklardan vizualizatsiya qilish
imkoni mavjud. Ushbu maqolada R funksiyalari yordamida murakkab 3D obyektlarni qanday
qurish mumkinligini batafsil ko'rib chiqamiz.

R da 3D grafikalar uchun asosiy paketlar

R da 3D grafikalar yaratishda keng qo'llaniladigan ikkita asosiy paket mavjud:
1. `rgl` paketi: `rgl` paketi haqiqiy vaqt (real-time) interaktiv 3D grafikalarni yaratish

uchun ishlatiladi. Bu paket OpenGL-ga asoslangan bo'lib, foydalanuvchiga 3D grafikalarni
yaratish, vizualizatsiya qilish va ularni aylantirish imkonini beradi.

2. `plot3D` paketi: `plot3D` statik 3D grafikalar yaratish uchun juda foydali paket. Bu paket

yordamida sirt grafiklari, izochiziqlar, nuqta bulutlari va boshqa murakkab 3D obyektlarni
yaratish mumkin.

Murakkab 3D obyektlarni yaratish jarayoni
1. Boshlang'ich sozlamalar

Avvaliga kerakli paketlarni yuklab olamiz va kutubxonani ishga tushiramiz:

# Kerakli paketlarni o'rnatish va yuklash
install.packages("rgl")
install.packages("plot3D")
library(rgl)
library(plot3D)

2. 3D nuqta buluti yaratish

Nuqta bulutlari - bu ko'plab nuqtalarning fazoda joylashgan grafik ifodasi. 3D fazoda

nuqtalar qanday taqsimlanganini ko'rsatish uchun foydalaniladi. Quyidagi misolda biz random
generator orqali nuqtalar to'plamini hosil qilamiz:

# Tasodifiy 3D nuqtalar to'plami
set.seed(123) # natijalarni qayta ishlab chiqarish uchun
x <- rnorm(100)
y <- rnorm(100)
z <- rnorm(100)
# rgl yordamida nuqta bulutini yaratish
plot3d(x, y, z, col="blue", size=5, type="s", xlab="X o'qi", ylab="Y o'qi", zlab="Z o'qi")


background image

`

10

Yuqoridagi kod 3D nuqta bulutini yaratadi va uni interaktiv tarzda aylantirish mumkin

bo'ladi. Foydalanuvchi grafikani sichqoncha yordamida har xil burchaklardan ko'rishi mumkin.

3. Sirt grafikasi yaratish

Sirt grafikasi 2D matritsa ko'rinishida mavjud bo'lgan qiymatlarni fazoda yuzaga

chiqaradi. Quyidagi misol sirt grafikasi qanday yaratilishini ko'rsatadi:

# Sirt yaratish uchun x va y o'qlari
x <- seq(-10, 10, length.out=50)
y <- seq(-10, 10, length.out=50)
# Sirtning z o'qi
z <- outer(x, y, function(x, y) sin(sqrt(x^2 + y^2)))
# plot3D yordamida sirt grafikasi
surf3D(x, y, z, colkey = TRUE, colvar=z, col="lightblue", xlab="X", ylab="Y", zlab="Z")

Ushbu kod sinusoidal to'lqin sirtini hosil qiladi. `outer` funksiyasi yordamida ikki

o'lchamli matritsa hosil qilinadi, bu sirt grafikasi uchun z o'qi bo'lib xizmat qiladi.

4. 3D ob'ektlarni birlashtirish

Bir nechta 3D obyektlarni bir grafikada birlashtirish mumkin. Masalan, nuqta buluti va

sirt grafikasi birlashtirilgan misol:

# Nuqta buluti
x <- rnorm(50)
y <- rnorm(50)
z <- rnorm(50)
# Sirt
xs <- seq(-5, 5, length.out=50)
ys <- seq(-5, 5, length.out=50)
zs <- outer(xs, ys, function(xs, ys) cos(sqrt(xs^2 + ys^2)))
# rgl yordamida kombinatsiya qilish
plot3d(x, y, z, col="red", size=5, type="s", xlab="X", ylab="Y", zlab="Z")
persp3d(xs, ys, zs, add=TRUE, col="lightgreen")

Bu misol 3D nuqtalar to'plamini va yuzani bir vaqtning o'zida ko'rsatadi. Ushbu

yondashuv katta hajmdagi geometrik ob'ektlarni vizualizatsiya qilish uchun foydali.

5. Ob'ektlarni o'zgartirish va manipulyatsiya qilish

3D grafik ob'ektlar ustida transformatsiyalarni amalga oshirish ham mumkin. Ob'ektlarni

aylantirish, siljitish yoki o'lchamini o'zgartirish orqali grafikni manipulyatsiya qilish mumkin.
Quyidagi misol buni ko'rsatadi:

# Nuqta buluti
x <- rnorm(50)
y <- rnorm(50)
z <- rnorm(50)
# Transformatsiya (aylantirish va o'lchamni o'zgartirish)
open3d()
plot3d(x, y, z, col="blue", size=5)
rgl.viewpoint(theta=30, phi=20, zoom=0.8) # Grafikni aylantirish


background image

`

11

Yuqoridagi kod grafikni aylantirish va kattalashtirish imkonini beradi. `rgl.viewpoint`

funksiyasi yordamida obyektlar turli burchaklardan ko'rish mumkin.

Murakkab obyektlar va amaliy dasturlar

3D grafikalar tibbiyot, biologiya va muhandislik kabi sohalarda keng qo'llaniladi. Quyidagi

misol molekulyar strukturani ko'rsatishga misol bo'lib xizmat qiladi:

# Misol molekula modeli
library(chemCal)
molecule <- molData("C6H12O6") # Glukoza molekulasi
# Molekula modelini chizish
plot3d(molecule$x, molecule$y, molecule$z, col="green", size=8, type="s", xlab="X",

ylab="Y", zlab="Z")

Ushbu kod glukoza molekulasining 3D modelini yaratadi. R dasturlashda bu kabi biologik

modellarni yaratish juda keng imkoniyatlarni taqdim etadi.

Xulosa

R dasturlash tili nafaqat ma'lumotlarni tahlil qilish balki murakkab 3D grafikalar va

ob'ektlarni yaratishda ham kuchli vositadir. `rgl` va `plot3D` kabi paketlar yordamida
foydalanuvchilar statistik modellar va geometriyani 3D ko'rinishda vizualizatsiya qilish
imkoniyatiga ega. Ushbu vositalar R'ning yanada keng qamrovli dasturlash tili ekanligini
ko'rsatadi, chunki ular ilmiy modellashtirish, muhandislik va grafik tahlil uchun ham mos
keladi.

References:

1.

Adler, D., & Murdoch, D. (2020).

rgl: 3D Visualization Using OpenGL

. R paketi hujjatlari.

https://cran.r-project.org/web/packages/rgl/index.html
2.

Soetaert, K. (2013).

plot3D: Plotting Multi-Dimensional Data

. R paketi hujjatlari.

https://cran.r-project.org/web/packages/plot3D/index.html
3.

Wickham, H. (2016).

ggplot2: Elegant Graphics for Data Analysis

. Springer-Verlag New

York.
4.

Xie, Y. (2013).

Dynamic Documents with R and knitr

. Chapman and Hall/CRC.

5.

Peng, R. D. (2015).

R Programming for Data Science

. Leanpub.

6.

Matloff, N. (2011).

The Art of R Programming: A Tour of Statistical Software Design

. No

Starch Press.
7.

Murrell, P. (2006).

R Graphics

. Chapman and Hall/CRC.

Bibliografik manbalar

Adler, D., & Murdoch, D. (2020). rgl: 3D Visualization Using OpenGL. R paketi hujjatlari. https://cran.r-project.org/web/packages/rgl/index.html

Soetaert, K. (2013). plot3D: Plotting Multi-Dimensional Data. R paketi hujjatlari. https://cran.r-project.org/web/packages/plot3D/index.html

Wickham, H. (2016). ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York.

Xie, Y. (2013). Dynamic Documents with R and knitr. Chapman and Hall/CRC.

Peng, R. D. (2015). R Programming for Data Science. Leanpub.

Matloff, N. (2011). The Art of R Programming: A Tour of Statistical Software Design. No Starch Press.

Murrell, P. (2006). R Graphics. Chapman and Hall/CRC.