Vairāk

Kā norādīt daudzstūru virsotnes ar maziem apļiem, izmantojot OpenLayers?

Kā norādīt daudzstūru virsotnes ar maziem apļiem, izmantojot OpenLayers?


Es izmantoju OpenLayers 3 un esmu vairāk vai mazāk ieviesis visu savā prasību sarakstā, izņemot vienu: man tiek lūgts kaut kā lai daudzstūra atveidojums norādītu daudzstūra virsotnes ar maziem apļiem.

Vienkāršiem vārdiem sakot, vēlamā daudzstūra kontūra nav tikai līnija - tā ir līnija, kas "rotāta" ar maziem apļiem visās vietās, kur ir virsotne.

Kā to izdarīt OL3? Es meklēju ol.style.Style docs (tas ir, stils, caur kuru es ejusetStyleuzol.lānis.Vektorskurā ir mani daudzstūri), taču neatradu neko atbilstošu.


Laipnie OL3 izstrādātāji ir snieguši atbildi GitHub problēmu sarakstā. Būtībā jūs izmantojat stila ģeometrijas funkciju, kas pārveido ģeometriju pirms tās projicēšanas - un šajā funkcijā jūs pievienojat savas virsotnes MultiPoint ģeometrijai. @tsauerwein aizgāja līdz darba vijoles radīšanai - liels paldies viņam par darbu.

var styleFunction = function () {var image = new ol.style.Circle ({rādiuss: 5, aizpildījums: nulle, gājiens: jauns ol.style.Stroke ({krāsa: 'oranžs', platums: 2})}); atgriezties [jauns ol.style.Style ({attēls: attēls, ģeometrija: funkcija (funkcija) {var koordinātas = iezīme.getGeometry (). getCoordinates () [0]; atgriezt jaunu ol.geom.MultiPoint (koordinātas);}} ), jauns ol.style.Style ({insults: jauns ol.style.Stroke ({krāsa: 'zils', platums: 3}), aizpildījums: jauns ol.style.Fill ({krāsa: 'rgba (0, 0 , 255, 0,1) '})})]; };

Kā zīmēt parastos daudzstūrus matemātikas režīmā

Man ir sērijas paplašināšana, kur katru terminu var saistīt ar parastu daudzstūri. Es gribētu to norādīt rakstā, ko rakstu, iekļaujot vienādojumu, kas matemātiskajā izteiksmē diagrammas uzskata par līdzīgiem terminiem. Tālāk ir parādīts piemērs tam, ko es domāju.

Man ir grūti saprast, kā to izdarīt, jo īpaši ar daudzstūru mērogu un centrējumu.

Būtu īpaši jauki, ja būtu risinājums, ko pieņemtu arxiv kompilators.


Daudzstūra sadalīšana vēlamajā veidā

Man ir ķekars daudzstūru. Es vēlos tos sadalīt ar līniju, kas iet caur centru, un sadalīt daudzstūri divās vienādās daļās attiecībā uz laukumu. Šķiet, ka nevaru atrast vietu, ar ko sākt.

Cerams, ka skaidrāks problēmas skaidrojums:

Man ir daudz daudzstūru 3D. Tāpat kā zemāk. Tie ir vairāk vai mazāk plakani daudzstūri, kas piekārti 3 dimensijās. Man ir katra to virsotnes Dekarta koordinātas. Tagad es vēlos tos sadalīt divās vienādās daļās. Līnija var būt jebkurā virzienā, un tai jāiet garām daudzstūra centram, sadalot to divās vienādās daļās.

Kā piemērs iepriekš daudzstūris ar zilu kontūru, ja tas ir sadalīts, kā es vēlos, tas izskatītos apmēram šādi

Ar dalošo (melno) līniju, kas iet caur centru (sarkanā krāsā), un sadalot daudzstūri divās vienādās daļās pēc platības.

Par to, kā tiek veidoti daudzstūri.
1. Katrs daudzstūris ir plakans vai katra daudzstūra virsotnes ir līdzenas. 2. Tomēr dažādi daudzstūri atrodas dažādās plaknēs, uzskatiet šos daudzstūrus par flīzēm, kas apstrādā virsmu. 3. Platība tiek aprēķināta katram daudzstūrim, pamatojoties uz tā virsotnēm, kas atrodas vienā plaknē. Šīs daudzstūru īpašības varat redzēt šādā formā. Sadalīšanai katrs daudzstūris ir jāsadala ar atsevišķām līnijām. Sadalījuma līnija nav vienāda


Daudzstūriem, palielinoties malu skaitam, samazinās katras malas garums

tātad pie ∞ garums būs vienāds ar punktu.

Var pieņemt, ka katra puse ir saīsināta līdz virsotnei (ti, punktam)

Tagad daudzstūris kļūst par punktu lokusu, kas patiesībā ir daudzstūra virsotnes.

Tomēr katra virsotne atrodas vienādā attālumā no daudzstūra centra, tāpēc iegūtais daudzstūris

kļūst par punktu lokusu, kas atrodas vienādā attālumā no kopējā centra punkta, kas ir aplis.

Pēc rediģēšanas: Tagad atliek pierādīt, ka pie n-> ∞ sānu garumam ir tendence uz nulli, ti, punktu.

To var pierādīt ar pretrunu. 1) Pieņemsim, ka pie n-> ∞, katras malas garums nav vienāds ar punktu, bet ir L.for n-> ∞, kopējais garums = n*L = ∞.

Tagad kopējais garums ir bezgalīgs, tomēr daudzstūris ir slēgts skaitlis, tāpēc tā kopējais garums acīmredzami ir ierobežots.

Tādējādi tas ir pretrunā ar to, ka garums ir bezgalīgs, kas savukārt ir pretrunā ar mūsu sākotnējo pieņēmumu.

Tāpēc pie n-> ∞ katras malas garums ir 0, ti, katra puse kļūst par punktu.

Šeit ir viena nopietna pieeja: Ļaujiet $ f_n kols [0,2 pi] līdz Bbb R _+$ būt funkcija, kuras grafiks polārajās koordinātās ir parastais $ n $ -gons, kura centrā ir sākumpunkts ar virsotni pie (1,0) ASV dolāri. Tad $ (f_n) $ vienmērīgi saplūst ar nemainīgu funkciju, kas kartē jebkuru leņķi līdz $ 1 $, kura grafiks ir aplis.

Mēs varam arī aplūkot teritorijas robežu, a la Archimedes un perimetru.

Parastais daudzstūris tuvojas aplim šādā nozīmē:

Visas daudzstūra virsotnes ir uz aplis.

Maksimālo daudzstūra attālumu līdz aplim norāda $ 2R sin^2 ( frac < pi> <2n>) $, kas iet uz nulli, jo $ n $ iet uz $ infty $.

Šķiet, ka ir vērts uzsvērt, ka "izskatās arvien vairāk kā apļi" pieļauj daudzas interpretācijas. Pašlaik redzamās atbildes un komentāri saka, ka daudzstūri saplūst ar apli vairākos veidos: galu galā tie atrodas patvaļīgi šauros gredzenos tieši apļa iekšpusē. To laukumi saplūst ar apļa laukumu. To perimetri saplūst ar apļa apkārtmēru. Varētu pievienot vairāk, piemēram, gandrīz visiem stariem $ R $, kas nāk no izcelsmes, virziens, kurā $ n $ -gons šķērso $ R $, saplūst virzienā, kurā aplis šķērso $ R $ (proti, perpendikulāri $ R $). "Gandrīz" šeit attiecas uz nepatīkamajām sajūtām, kas rodas dažiem (skaitāmiem) $ R

Šūnu algoritms point-in-polygon algoritms, kas piemērots lielām punktu kopām ☆

Darbā ir aprakstīts jauns algoritms, lai atrisinātu punktu daudzstūra problēmu. Tas ir īpaši piemērots gadījumos, kad ir jāpārbauda, ​​vai daudzpunkti ir ievietoti daudzstūra iekšpusē vai ārpusē. Algoritms darbojas divos posmos. Pirmkārt, tiek izveidots vienāda lieluma šūnu režģis, un daudzstūris tiek uzlikts uz šī režģa. Šūnu izmēru noteikšanai tiek piedāvāta heiristiska pieeja. Režģa šūnas ir atzīmētas kā iekšpusē, ārpusē vai uz daudzstūra robežas. Šūnu klasifikācijai tiek izmantots modificēts plūdu aizpildīšanas algoritms. Otrajā posmā punkti tiek pārbaudīti individuāli. Ja pārbaudītais punkts iekrīt iekšējā vai ārējā šūnā, rezultāts tiek atgriezts bez papildu aprēķiniem. Ja šūnā ir daudzstūra robeža, ir iespējams noteikt vietējo punkta pozīciju. Laika sarežģītības analīze rāda, ka inicializācija ir pabeigta O (n n) laikā, savukārt paredzamā laika sarežģītība atsevišķa punkta pārbaudei ir O (n), kur n apzīmē daudzstūra malu skaitu. Algoritms darbojas ar O(n) telpas sarežģītība. Darbs sniedz arī praktiskus rezultātus, izmantojot mākslīgus un reālus daudzstūrus no ĢIS vides.


Cikliskie daudzstūri un amp trigonometrija

Vienā piecstūra virsotnē, kas ierakstīta vienības diametra aplī (vienības diametrs, nevis vienības rādiuss), leņķiem starp blakus esošajām diagonālēm jābūt $ alfa, beta, gamma $, bet nākamajā - $ beta, gamma, delta $, nākamajā $ gamma, delta, varepsilon $, pēc tam $ delta, varepsilon, alfa $ un visbeidzot $ varepsilon, alfa, beta $. Ņemiet vērā, ka $ alfa+ beta+ gamma+ delta+ varepsilon = pi. tag $ Vēlāka piezīme: (Lai kaut kas netiktu pārprasts, ievērojiet, ka tas, ko es rakstīju iepriekš, attiecas uz visiem apļa rakstītajiem piecstūriem. Leņķiem ar virsotnēm uz apļa ir vienāds lielums, ja tie ir saspiesti ar vienu un to pašu loku. Līdz ar to, ja trīs leņķi starp blakus esošajām diagonālēm vienā virsotnē ir $ alfa, beta, gamma $ tādā secībā, tad diviem leņķiem starp blakus esošajām diagonālēm vienā no kaimiņu virsotnēm jābūt $ alfa $ un $ beta $, bet diviem no tiem, kas atrodas otrai blakus esošajai virsotnei ir jābūt $ beta $ un $ gamma $. Un neatkarīgi no piecstūra formas piecu leņķu summai ir jābūt puslokam. Tas ir vispārīgs priekšlikums par daudzstūriem, kas ierakstīti aplī. , ja to piemēro trīsstūriem, saka, ka trīs leņķu summa ir pusloks.) Vēlākās piezīmes beigas

Nav grūti parādīt, ka piecstūra laukums ir $ frac < sin (2 alfa)+ sin (2 beta)+ sin (2 gamma)+ sin (2 delta)+ sin (2 varepsilon)> <8>. Tag <1> $ Tas ir nedaudz vairāk darba, lai parādītu, ka, ja iepriekš minētais ierobežojums ir spēkā, $ (1) $ ir vienāds ar $ frac 1 2 left ( overbrace < sin alpha sin beta sin gamma>^ teksts overbrace < cos delta cos varepsilon>^ teksts + cdots teksts cdots - overbrace <2 sin alpha sin beta sin gamma sin delta sin varepsilon>^ teksts aisnība). $ (Būtu skaidrs, kādi ir vēl deviņi termini: katrā termiņā izvēlieties trīs faktorus, lai tie būtu sinusi, un tad pārējie divi ir kosinusi.)

(Cik es zinu, tas ir mans. Es to esmu šeit minējis vismaz vienu reizi.)

Vai vienpadsmit terminus var interpretēt kā apgabalus?

Vēlākā rediģēšana: Pat četrstūriem tas šķiet noslēpumains. Ja leņķi starp blakus esošajām diagonālēm ir $ alfa+ beta+ gamma+ delta = pi $, un divi no tiem rodas katrā virsotnē, un katrs notiek divās no četrām virsotnēm, laukums ir $ frac < sin (2 alfa)+ sin (2 beta)+ sin (2 gamma)+ sin (2 delta)> <8> = frac 1 2 Big ( overbrace < sin alpha sin beta sin gamma>^ teksts overbrace < cos delta>^ text+ cdots text cdots Big) $

Jūs varētu domāt ka četri termini ir četru trijstūru laukumi, kuros daudzstūris ir sadalīts pa diagonālēm. Bet uzmini ko ?? Viņi nav! Līdzīgi pentagramma sadala piecstūri 11 ASV dolāru trīsstūros, un labajā pusē ir 11 ASV dolāru nosacījumi, taču tie neatbilst apgabaliem.


Kā iegūt apaļas malas, sadalot apakšvirsmas ar pazemes virsmas pārveidotāju?

Attēlā jūs varat redzēt asas malas, šī problēma radās tāpēc, ka es sadalīju atlasītās sejas (taustiņš "W", pēc tam - sīkāk) ar 4 apakšnodaļu apakšvirsmas modifikatoru.

Kā panākt, lai šīs asās malas pārvērstos par apaļām malām, piemēram, parastam virszemes pārveidotājam? Vai kā ciantera/sfēras malas.

PIEZĪME: Man ir nepieciešams daudz daudzstūru-virsotņu, jo man ir "pārvietošanas modifikators", varbūt jūs varat man palīdzēt atrast veidu, kā aizstāt modifikatoru (ar daudz poligoniem), nevis atrisināt šo.

Gluds pārveidotājs, rezultāts ir labs citā tīklā, bet arī ar kļūdu, taču šajā gadījumā tas nedarbojas, kā es gaidīju.

Gludi instrumenti. Tas ir diezgan labs manam pārvietojuma pārveidotājam, taču tas neatrisina asās malas.

Es vēlos, lai viss, kas atzīmēts ar sarkanu apli (asās/cietās malas) pārvēršas par mīkstām malām, piemēram, cilindra virsmu.

Problēma ir tāda, ka man ir nepieciešams sadalīt un pazemes modifikators, jo ir jāmaina modificētājs (man vajag daudz daudzstūru).


3 atbildes 3

No dotā taisnstūra starp apļa centriem un kopēto (parasto piecstūra pieskārienu) apļu pieskares punktu

Ļaujiet $ O $ būt piecstūra centram. Ļaujiet $ l $ būt attālumam no $ O $ līdz kādai virsotnei. Es ceru, ka jūs varat to aprēķināt. Sauciet to par $ l $.

Tagad izvelciet secantu no $ O $ caur šo virsotni. Tās garums ir $ l+1 $, ārējās daļas garums ir $ 1-1 $. Ievērojiet, ka jūsu rādiuss $ r $ ir pieskares garums. Atgādiniet teorēmu, kas savieno šīs trīs vērtības.

Ātrā Google meklēšana sniegs formulu parastajam daudzstūra apothemam, kas ir jūsu meklētais garums.


Vienīgais parastais daudzstūris, ko varat uzzīmēt ar virsotnēm uz standarta veselu skaitļu režģa, ir baidos, ka kvadrāts. Es nepaskaidrošu, kā to uzzīmēt!

Mēs varētu uzskatīt arī daudzstūrus, kas uzzīmēti Dekarta plaknē ar virsotnēm racionālos punktos, un mēs varētu arī uzskatīt mūsu daudzstūra centru par izcelsmi. Lai $ P $ un $ Q $ būtu blakus esošās virsotnes ar pozīciju vektoriem $ v $ un $ w $. Tad $ v cdot v = w cdot w = a $ teikt un $ v cdot w = a cos (2 pi/n) = b $ teikt. Mums ir nepieciešami $ a $ un $ b $, lai tie būtu racionāli, lai $ cos (2 pi/ n) $ būtu jābūt racionāliem. Bet $ 2 cos (2 pi /n) $ ir algebrisks vesels skaitlis, tāpēc tam jābūt parastam veselam skaitlim. Mēs samazinām līdz gadījumiem $ n = 3 $, $ 4 $ vai $ 6 $.

Ja mēs varam uzzīmēt regulāru sešstūri $ mathbb^2 $ mēs varam uzzīmēt vienādmalu trīsstūri, tāpēc koncentrēsimies uz to. Iekļaujiet mūsu plakni trīsdimensiju telpā un apsveriet vektora reizinājumu $ v wedge w $. Tad $ | v wedge w |^2 = (v cdot v) (w cdot w)-(v cdot w)^2 = a^2 (1- cos^2 pi/3) = frac34 a^2 $. Bet $ v wedge w $ ir vienības vektora racionāls daudzkāršs perpendikulārs mūsu plaknei, tāpēc $ | v wedge w |^2 $ ir racionāla kvadrāts. Hmm!

Es domāju, ka varētu aplūkot labus tuvinājumus parastajiem daudzstūriem, kas uzzīmēti uz veselu skaitļu režģa, vai regulāriem daudzstūriem veselo skaitļu režģos, kuru izmēri ir USD 3 USD vai vairāk.


Jauna hibrīda informācijas drošības shēma 2D vektoru kartei

Informācijas slēpšana ir būtiska pētniecības tēma hibrīda informācijas drošības teorijā. 2D vektoru karte satur daudz hibrīda informācijas, kurai nepieciešama autentiskuma un integritātes pārbaude. Šajā rakstā ir piedāvāta jauna hibrīda informācijas drošības shēma 2D vektoru kartei. Vektoru kartes funkcijas vispirms tiek sadalītas sadalītās grupās, lai nodrošinātu viltojuma lokalizācijas precizitāti. Lai atrastu partijas funkciju dzēšanas uzbrukumu, mēs izstrādājam pazīmju grupu korelācijas paņēmienu, pamatojoties uz virsotņu ievietošanu. Trausla ūdenszīme tiek ģenerēta, apvienojot to ar polāro koordinātu pārveidošanu un jaucējfunkciju, kas ir izturīga pret rotāciju, vienotu mērogošanu un tulkošanu (RST). Un mēs iegulām ūdenszīmi ar RST nemainīgu ūdenszīmju metodi. Mēs veidojam divas datu kopas eksperimentiem, un rezultāti, salīdzinot ar iepriekšējām metodēm, liecina, ka piedāvātajai shēmai ir laba neredzamība un augsta lokalizācijas precizitāte funkciju pievienošanas un dzēšanas uzbrukumā.

Šis ir abonementa satura priekšskatījums, kuram var piekļūt, izmantojot jūsu iestādi.


3 atbildes 3

Katrs krustojums unikāli tiek kartēts līdz $ 4 $ atšķirīgu punktu kopumam. Tāpēc $ = 70 $, kas nozīmē, ka ir $ n = 8 $ virsotnes, un līdz ar to ir $ = 28 $ diagonāles daudzstūrī.

Tomēr es joprojām neesmu pārliecināts, kāpēc mana izmantotā metode ir nepareiza, tāpēc vai kāds varētu man palīdzēt saprast, kur mana domāšana ir kļūdaina?

Problēma ir tā, ka ne visi diagonāļu pāri krustojas. Piemēram, ja jums ir izliekta sešstūra ABCDEF diagonāles AC un DF nekrustojas

Tas nešķiet iespējams, kā teikts. Pieņemsim, ka daudzstūrim ir $ m $ virsotnes. Katra virsotne atrodas uz $ 3–3 $ diagonālēm, viena savieno to ar katru virsotni, izņemot sevi un abus tās kaimiņus. Tas ir, $ 3–3 $ diagonāles sakrīt katrā virsotnē. Ja $ m-3 & lt3 $, tad $ m leq5 $. Piecstūrim ir $ 5 $ diagonāles, un $ binom n2 geq70 $ mums ir nepieciešams $ n geq13 $.

Varbūt problēmai vajadzētu teikt: "Neviens trīs nav vienlaicīgi, izņemot virsotnes." "Tādā gadījumā pieņemsim, ka daudzstūrim ir $ m $ virsotnes un ka neviena diagonāle nav paralēla. Tad daudzstūrim ir $ d = frac2 $ diagonāles. Ir $ binom d2 $ diagonāļu pāri, taču tas saskaitītu katru virsotni $ binom2 $ reizes, vienreiz par katru diagonāļu pāri, kas iet caur to. Tāpēc krustošanās punktu skaits ir $ binom d2-m left ( binom2-1 labi) $ Iestatījums $ m = 7 $ dod $ 56 $ un iestatījums $ m = 8 $ dod $ 118 $, tāpēc nav risinājuma bez paralēlām diagonālēm. Tādā gadījumā ir grūti zināt, kā rast risinājumu, nemaz nerunājot par to, ka tas ir unikāls.

Sākotnēji uzdevu problēmu nepareizi. Es teicu: "Katra virsotne tiek uzskaitīta $ 3–3 reizes vienreiz par katru diagonāli, kas iet caur to, lai krustošanās punktu skaits būtu $ binom d2-m (m-4) $." "Šajā gadījumā, iestatījums $ m = 7 $ dod $ 70 $.

Man ir aizdomas, ka tas ir paredzētais risinājums un ka tas, kurš sastādīja problēmu, pieļāva tādu pašu kļūdu kā es.


Skatīties video: Openlayers Plugin in QGIS. Overlay Google Map Satellite in QGIS