Vairāk

Vai automātiski pievienot virsotni daudzstūrim, kur tam pieskaras cita daudzstūra virsotne?


Daudzstūri, kurus izmantoju ArcMap 10.2, ir uzzīmēti tā, lai tie saspiestos viens ar otru, bet nekad nepārklājas. Es aprakstīju vispārīgu gadījumu šādā attēlā:

Daudzstūri nosaka minimālās virsotnes. Gan zaļie, gan rozā daudzstūri ir veidoti no 4 virsotnēm. Ja tiek izmantota zīmēta snapping.

Mana problēma ir tāda, ka man tagad ir jāpievieno jauna virsotne, ja viena daudzstūra virsotne atbilst otra daudzstūra līnijai. Kā redzams attēla apakšējā daļā, zaļajam daudzstūrim ir jābūt piektajai virsotnei, ja rozā daudzstūra virsotne tai pieskaras. Līdzīgi rozā daudzstūrim tiks pievienota arī 5. virsotne.

Lai automatizētu šo procesu, es domāju izvēlēties katru daudzstūri un palaist komandu Clip. Tas pievienos vajadzīgo virsotni otrā daudzstūrī. Bet ir pārāk daudz daudzstūru, ar kuriem strādāt; vai ir citi veidi, kā sasniegt tādu pašu rezultātu?

Kaut kas kā:

  • Noteikt daudzstūrus, kas pieskaras.
  • Pārbaudiet, vai vietā, kur rozā daudzstūra virsotne pieskārās otra daudzstūra līnijai, zaļajam daudzstūrim ir vajadzīgā virsotne. Ja nē, atgrieziet ID vai ierakstiet kaut ko kolonnā.

Jūs varētu izveidot topoloģiju ģeodatubāzē, un tad, apstiprinot šo topoloģiju, tā pievienos virsotnes jūsu aprakstītajā veidā.

http://resources.arcgis.com/en/help/main/10.2/index.html#/Designing_a_geodatabase_topology/006200000004000000/

Ja jūs ar to neesat iepazinušies, pamatā jums vajadzētu izveidot objektu datu kopu ģeodatubāzē, importēt savu funkciju klasi (-es), iestatīt topoloģiju un topoloģijas noteikumu (-us) (piemēram: nedrīkst pārklāties) un apstipriniet to. Tam vajadzētu automātiski ievietot virsotnes, kur viena daudzstūra virsotne atrodas uz cita daudzstūra malas.


Es tikko pārbaudīju (lai gan ArcGIS 10.3 darbvirsmai), lai apstiprinātu, ka varat to izdarīt, izmantojot rīku Integrēt (datu pārvaldība).

Tas ir pieejams visos licences līmeņos, un tas ir viens ātrs solis.

Rezultāts ir tāds, kā norādīts ziemeļu daudzstūra virsotnēs, bet arī virsotne tika ievietota dienvidu daudzstūrī.


Ja jums ir paaugstināta līmeņa licence, rīks Feature to Polygon izveidos jaunu virsotni vēlamajās vietās. Tā kā jums nav pārklāšanās, tam nevajadzētu radīt šķēles, bet tas notiks, ja malas nesakrīt (ti, mala ir nofiksēta).


Virsotņu savienojuma izsekošana un noteikšana, veidojot daudzstūri

Es cenšos strādāt pie spēļu mehāniķa c#, kas ietver virsotņu savienošanu un daudzstūru veidošanu.

Var būt 5–30 virsotņu. Katru virsotni var savienot ar taisnu līniju (Līnijas nevar krustoties). Kad līnija aizver daudzstūri, daudzstūra iekšpuse tiek iekrāsota noteiktā krāsā. (Jūs nevarat aizvērt daudzstūri, ja aizvēršanas laikā tajā atrodas punkts)

Piemēram, nevar parādīties divi attēli:

Man ir problēmas ar to, kā atpazīt tikko aizvērto daudzstūri un atcerēties to (ja es aizveru daudzstūri, kuram ir kopīga mala). Man var būt vairāki slēgti daudzstūri, līdz var uzzīmēt visas līnijas, kuras var novilkt no katras virsotnes, nepārkāpjot krustošanās noteikumu.

Es mēģināju atcerēties līnijas, kas tika uzzīmētas AB, ED, CD, CA utt., Un meklēju ciklu, bet, aizverot vairākus daudzstūrus, man ir nepieciešama papildu informācija, lai uzzinātu, kurš daudzstūris jau ir aizvērts. Bet man ir grūti saprast, kā to izdarīt.

Piemēram (attēls zemāk), ja līnija n tika uzzīmēts, es vēlos atrast tikko izveidoto daudzstūri.

Vai kādam ir ideja, kā es to varu sasniegt? Jebkura ideja, palīdzība, ieskats būtu noderīgi.


Daudzstūra acu komponentu pievienošana un rediģēšana

Ir daudz rīku un operatoru punktu, malu un daudzstūru pievienošanai daudzstūra acu objektiem. Tie visi ir pieejami Modify Poly. Tīkla izvēlne modeļa rīkjoslā, kā arī konteksta izvēlnē, kas tiek parādīta, kad 3D skatījumā ar poligona sietu nospiežat Alt+peles labo pogu (Ctrl+Alt+ar peles labo pogu noklikšķiniet uz Linux) vai ar peles labo pogu noklikšķiniet, ja daudzstūra sieta sastāvdaļas ir atlasīti.

Daudzstūru pievienošana un rediģēšana (zīmēšana)

Daudzstūra pievienošanas/rediģēšanas rīks ir daudzfunkcionāls rīks, kas ļauj interaktīvi uzzīmēt daudzstūrus, novietojot virsotnes. Varat to izmantot, lai esošam tīklam pievienotu daudzstūrus, pievienotu vai noņemtu punktus esošajiem daudzstūriem vai izveidotu jaunu daudzstūra acu objektu. Pastāv divas preferences, kas nosaka rīka Pievienot/rediģēt daudzstūri darbību: Saglabājiet planaritāti, veidojot daudzstūrus, un darbību, savienojot CW un CCW daudzstūrus.

Lai izveidotu jaunu daudzstūra acu objektu, vispirms pārliecinieties, vai pašlaik nav atlasītas daudzstūra acis.

Lai esošam daudzstūra tīkla objektam pievienotu daudzstūrus, vispirms atlasiet sietu.

Lai esošā daudzstūra tīkla objektā esošam daudzstūrim pievienotu vai noņemtu punktus, atlasiet šo daudzstūri.

Izvēlieties Modificēt poli. Tīkla pievienošanas/rediģēšanas daudzstūra rīks modeļa rīkjoslā vai nospiediet N.

Lai pievienotu punktu, noklikšķiniet 3D skatā. Ja nepieciešams, pirms pogas atlaišanas varat pielāgot pozīciju, pārvietojot peles rādītāju.

Noklikšķiniet uz esoša punkta citā daudzstūrī tajā pašā tīklā, lai tam pievienotu pašreizējo daudzstūri.

Noklikšķiniet uz esoša cita daudzstūra malas tajā pašā tīklā, lai tam pievienotu pašreizējo daudzstūri.

Noklikšķiniet ar peles kreiso pogu un velciet pašreizējā daudzstūra virsotni, lai to pārvietotu.

Lai noņemtu pašreizējā daudzstūra virsotni, ar peles labo pogu noklikšķiniet uz tā.

Pārvietojot peles rādītāju, izveidotās malas ir iezīmētas sarkanā krāsā. Lai ievietotu jauno punktu starp dažādiem pašreizējā daudzstūra virsotņu pāriem, vispirms pārvietojiet peli pāri malai, kas tos savieno.

Normālo virzienu nosaka virziens, kurā jūs zīmējat virsotnes. Ja virsotnes tiek zīmētas pretēji pulksteņrādītāja virzienam, parastās ir vērstas pret kameru, un, ja tās ir virzītas pulksteņrādītāja virzienā, tās ir vērstas prom no kameras. Zīmējot, sarkanās bultiņas norāda virsotņu secību.

Savienojot divus daudzstūrus, kuru normālie rādītāji norāda pretējos virzienos, uzvedību nosaka darbība, savienojot CW un CCW daudzstūri, kā aprakstīts nākamajā sadaļā.

Ja vēlaties, izmantojot šo rīku, varat aktivizēt noklikšķināšanu. Plašāku informāciju par noklikšķināšanu skatiet sadaļā Snapping.

Kad esat pabeidzis zīmēt daudzstūri, veiciet vienu no šīm darbībām:

Lai sāktu jaunu daudzstūri un automātiski koplietotu malu ar pašreizējo, vispirms pārvietojiet peles rādītāju pa vēlamo malu un pēc tam noklikšķiniet uz peles vidējās pogas. Ja nepieciešams, atkārtojiet 3. darbību.

Lai sāktu jaunu daudzstūri bez kopīgošanas, automātiski koplietojot malu, noklikšķiniet ar peles labo pogu. Ja nepieciešams, atkārtojiet 3. darbību.

Kad esat pabeidzis zīmēt daudzstūrus, izejiet no rīka Pievienot/rediģēt daudzstūri, divreiz pēc kārtas noklikšķinot ar peles labo pogu, izvēloties citu rīku vai nospiežot Esc.

Preferences, kas ietekmē zīmēšanas daudzstūrus

Ir divas preferences, kuras varat iestatīt, lai kontrolētu rīka Pievienot/rediģēt daudzstūri darbību: Saglabājiet planaritāti, veidojot daudzstūrus, un darbību, savienojot CW un CCW daudzstūrus.

Lai piekļūtu šīm opcijām, galvenajā izvēlnē izvēlieties Failu preferences, pēc tam izvērsiet Rīki un noklikšķiniet uz Daudzstūris.

Saglabājiet planaritāti, veidojot daudzstūrus

Preference Saglabāt planaritāti, veidojot daudzstūrus, automātiski pielāgo pozīciju, lai saglabātu daudzstūra plakni, kad noklikšķināt, lai pievienotu jaunu virsotni, izmantojot rīku Pievienot/rediģēt daudzstūri. Tā rezultātā jaunas virsotnes var netikt pievienotas tieši tur, kur noklikšķināt - pat ja ieslēgšana ir ieslēgta.

Ja šī opcija ir izslēgta, tad ir iespējams uzzīmēt nelīdzenus daudzstūrus, piemēram, uzzīmējot trīs virsotnes priekšējā skatā un pēc tam ceturto sānu skatā.

Jūs varat īslaicīgi mainīt pašreizējo uzvedību, pievienojot punktus, nospiežot Shift. Nospiežot taustiņu Shift, varat piespiest plakanību, kad zīmējat konkrētu daudzstūri, kad preference ir izslēgta, vai atļaut neplanainu daudzstūri, kad preference ir ieslēgta.

Lai iegūtu papildinformāciju par daudzstūriem un planaritāti, skatiet sadaļu Plakanie un neplanārie daudzstūri.

Darbība, savienojot CW un CCW daudzstūrus

Zīmējot daudzstūrus un savienojot tos ar citiem, parastie var būt vērsti pretējos virzienos. Tas notiek, ja divu daudzstūru virsotnes ir sakārtotas atšķirīgi, tas ir, pulksteņrādītāja virzienā pret pretēji pulksteņrādītāja virzienam. Kad divi šādi daudzstūri tiks savienoti, darbība, savienojot CW un CCW daudzstūri, kontrolē, kas notiek:

Ātrs lietotājs, pirms turpināt: Katrā gadījumā jums tiek piedāvāts apgriezt daudzstūrus vai nē.

Apgriezt pretrunīgu (-us) daudzstūri (-us) (un visus blakus esošos): pārējie daudzstūri ir apgriezti, lai tie atbilstu pašreizējam zīmējamam daudzstūrim. Inversija viļņo caur blakus esošajiem daudzstūriem (ja nepieciešams).

Pieņemt CW-CCW savienojumu (ar dubultu malu sānu efektu): Parastos virzienos izmaiņas netiek veiktas. Blakus esošie daudzstūri ar pretējiem normāliem ir savienoti ar dubultu malu, lai saglabātu acu struktūras integritāti.

Plašāku informāciju par daudzstūra normām skatiet sadaļā Daudzstūra ēnojums.

Varat izmantot rīku Pievienot malu, lai interaktīvi sadalītu vai sagrieztu daudzstūrus, uzzīmējot jaunas malas, kas savieno esošās malas vai virsotnes.

Atlasiet daudzstūra tīkla objektu.

Izvēlieties Modificēt poli. Tīkla pievienošanas malas rīks modeļa rīkjoslā vai nospiediet .

Lai norādītu jaunas malas sākuma punktu, veiciet vienu no šīm darbībām:

Lai sāktu zīmēt malu no esoša punkta, noklikšķiniet uz tā.

Lai sāktu zīmēt no esošas malas, noklikšķiniet uz vēlamās vietas gar malu. Tiek izveidots jauns punkts.

Lai sāktu zīmēt no malas viduspunkta, nospiediet taustiņu Ctrl, vienlaikus noklikšķinot jebkurā vietā uz šīs malas. Tiek izveidots punkts, vienmērīgi sadalot malu.

Lai sāktu zīmēt no punkta daudzstūra iekšpusē, nospiediet taustiņu Alt, vienlaikus noklikšķinot daudzstūra iekšpusē. Tiek pievienots punkts un izveidots trīsstūris, automātiski pievienojot malas, kas savieno šo punktu ar tuvākās malas galapunktiem.

Lai norādītu jaunās malas galapunktu, veiciet vienu no šīm darbībām:

Ja vēlaties, lai nākamā mala sāktos no pašlaik zīmētās malas galapunkta, noklikšķiniet uz cita punkta vai malas. Pievienota jauna mala, kas savieno abas atrašanās vietas. Noklikšķinot varat izmantot taustiņus Ctrl, Shift vai Ctrl+Shift, lai mainītu, kā jaunā mala ir pievienota esošai malai, kā aprakstīts vēlāk šajā solī. Jūs varat atkārtot šo darbību, lai uzzīmētu malu sloksni.

Noklikšķiniet, lai turpinātu zīmēt malas no pēdējā punkta.

Ja vēlaties, lai nākamajai malai būtu tāds pats sākuma punkts kā malai, kuru pašlaik zīmējat, ar peles kreiso taustiņu noklikšķiniet uz punkta vai malas ar vidējo pogu. Atkal varat izmantot taustiņus Ctrl, Shift vai Ctrl+Shift, vienlaikus nospiežot vidējo pogu, lai mainītu, kā jaunā mala ir pievienota esošai malai, kā aprakstīts vēlāk šajā solī. Jūs varat atkārtot šo darbību, lai ātri uzzīmētu daudzstūru ventilatorus.

Noklikšķiniet ar vidējo pogu, lai turpinātu zīmēt malas no iepriekšējā punkta.

Noklikšķiniet daudzstūra iekšpusē, lai pievienotu punktu. Varat atkārtot šo darbību, lai pirms pārtraukšanas pievienotu tik daudz interjera punktu, cik vēlaties, izveidojot polilīnu. Jūs pārtraucat polilīniju, pievienojot galapunktu esošai daudzstūra malai vai punktam, izmantojot peles kreiso vai vidējo pogu, kā aprakstīts iepriekš.

Noklikšķiniet daudzstūra iekšpusē, lai pievienotu iekšējo punktu.

Ja aizverat rīku Pievienot malu vai sākat no jauna (kā aprakstīts 5. darbībā) pirms polilīnijas gala pievienošanas, iekšējie punkti tiek izmesti, jo tie neveido derīgu acu struktūru.

Ja izmantojat noklikšķināšanu, lai izlīdzinātu iekšējos punktus ar režģi vai citiem elementiem, plakne, kurā tiek veidoti iekšējie punkti, ir atkarīga no daudzstūra preferenču iestatījuma Saglabāt planaritāti izveides laikā. Kad šī izvēle ir ieslēgta, jaunie punkti tiek piespiesti ekrāna telpai, bet joprojām tiek izveidoti esošā daudzstūra plaknē.

Kad šī izvēle ir izslēgta, iekšējie punkti tiek izveidoti precīzā fiksējošā mērķa vietā 3D telpā. Ja neizmantojat snapping, interjera punkti vienmēr tiek izveidoti esošā daudzstūra plaknē.

Plašāku informāciju par noklikšķināšanu kopumā skatiet sadaļā Snapping. Papildinformāciju par daudzstūra preferencēm skatiet sadaļā Preferences, kas ietekmē zīmēšanas daudzstūrus.

Pievienojot iekšējos punktus, varat vienlaikus nospiest taustiņu Alt, lai automātiski izveidotu trīsstūri, savienojot jauno punktu ar tuvākās malas galapunktiem, tāpat kā norādot sākuma punktu iepriekšējā solī.

Alt+noklikšķiniet daudzstūra iekšpusē, lai pievienotu punktu un savienotu to ar trijstūri ar tuvāko malu.

Neatkarīgi no tā, kuras opcijas izmantojat malu zīmēšanai, varat vienu vai vairākas reizes nospiest taustiņu kombināciju Ctrl+Z, lai atsauktu pēdējās darbības, neizejot no rīka Pievienot malu. Varat arī nospiest taustiņu kombināciju Ctrl+Y, lai atsāktu darbību, kuru atsaukāt.

Ja jūs mēģināt pievienot jaunu malu esošai malai vai virsotnei, un, pārvietojot rādītāju virs tā, mērķis netiek izcelts, tas nozīmē, ka jūs nevarat pievienot jauno malu šajā vietā, jo tas radītu nederīgu acu .

Jūs nevarat piestiprināt malu šim punktam.

Ja jūs zīmējat malu starp diviem punktiem, kuriem jau ir viena mala, jauna mala netiek izveidota - otrais punkts vienkārši kļūst par nākamās uzzīmētās malas sākumpunktu. Noklikšķinot uz malas, kas atrodas blakus pašreizējam punktam, tiek izveidota jauna virsotne.

Pievienojot jaunu malu esošai malai, varat izmantot taustiņus Ctrl, Shift un Ctrl+Shift šādi:

Nospiediet taustiņu Ctrl, vienlaikus noklikšķinot uz malu vai ar vidējo taustiņu, lai to vienmērīgi sadalītu uz pusēm.

Nospiediet Ctrl, lai vienmērīgi sadalītu malu.

Nospiediet taustiņu Shift, vienlaikus noklikšķinot uz malas vai noklikšķinot uz vidējās malas, lai nodrošinātu, ka leņķis starp jauno malu un mērķa malu saskan ar vairākkārtēju Snap Increments - Rotate vērtību, kas iestatīta jūsu pārveidošanas preferencēs. Piemēram, ja Snap Increments - Rotate ir 15, tad jaunā mala tiks fiksēta 15 grādos, 30 grādos, 45 grādos utt. Leņķi tiek aprēķināti ekrāna telpā. Lai iegūtu papildinformāciju par palielināšanas palielināšanu, skatiet sadaļu Papildu piesaiste.

Nospiediet Shift, lai piestiprinātu pie rotācijas pieauguma vairākkārtējiem. Šajā gadījumā pieaugums ir 15, un mala ir piestiprināta 45 grādos.

Nospiediet taustiņu kombināciju Ctrl+Shift, vienlaikus noklikšķinot uz malas vai ar vidējo taustiņu, lai pievienotu jauno malu taisnā leņķī pret mērķa malu. Leņķis tiek aprēķināts objekta telpā.

Nospiediet Ctrl+Shift, lai pievienotu taisnā leņķī.

Kad esat pabeidzis uzzīmēt sloksni vai malu ventilatoru, veiciet vienu no šīm darbībām:

Lai turpinātu malu pievienošanu, sākot no jaunas atrašanās vietas, ar peles labo pogu noklikšķiniet un pēc tam atkārtojiet 2. līdz 4. darbību.

Lai aizvērtu rīku Pievienot malu, nospiediet taustiņu Esc vai izvēlieties citu rīku.

Rīks Pievienot virsotni apvieno dažas Split Edge un Move Point iespējas.

Atlasiet daudzstūra tīkla objektu.

Izvēlieties Modificēt poli. Mesh Pievienojiet Vertex Tool no modeļa rīkjoslas vai nospiediet Insert.

Lai pievienotu un pārvietotu virsotni, noklikšķiniet uz vēlamās vietas gar malu un pēc tam velciet iegūto punktu.

Lai pārvietotu punktu, noklikšķiniet un velciet to.

Trīs peles pogas ļauj vilkt dažādos veidos, atkarībā no pašreizējā pārveidošanas režīma.

Tulkošanas režīmi: XYZ režīmi (A) un vilkšanas režīmi (B).

Ja vēlaties, izmantojot šo rīku, varat aktivizēt noklikšķināšanu. Plašāku informāciju skatiet sadaļā Snapping [Darbs 3D telpā].

Lai izietu no rīka Pievienot virsotni, nospiediet taustiņu Esc vai izvēlieties citu rīku.

Metināšana apvieno divas vai vairākas virsotnes daudzstūra tīklā vienā virsotnē.

Izmantojot metināšanas punkta rīku, varat interaktīvi metināt punktu pārus.

Izmantojot izvēlnes komandu, varat metināt vairākus atlasītos punktus vai nu mērķos, vai to vidējā pozīcijā.

Kā alternatīvu liela punktu skaita metināšanai jūs varat filtrēt punktus pēc attāluma (skat. Punktu filtrēšana).

Tweak Component rīks interaktīvi atbalsta metināšanu. Skatiet sadaļu Tweak Component Tool.

Pārvietošanas punkta rīks arī interaktīvi atbalsta metināšanu ar Alt taustiņu. Skatiet pārvietošanas punkta rīka izmantošanu.

Jūs varat metināt punktus tikai tad, ja tie pieder vienam un tam pašam daudzstūra tīkla objektam.

Divu punktu interaktīva metināšana, izmantojot metināšanas punktu rīku

Izvēlieties Modificēt poli. Tīkla metināšanas punkta rīks.

Noklikšķiniet un velciet punktu. Pārvietojot peles rādītāju, punkts noklikšķina uz punktiem reģionā.

Atlaidiet peles pogu virs punkta, pie kura vēlaties metināt.

Tiek lietots WeldPoints operators, bet tā rekvizītu redaktors netiek automātiski atvērts.

Metināšanas punkta rīks izmanto to pašu rādiusu kā rīks Pārvietot punktu, lai vilkšanai vilktu punktu zem peles pogas. Pārvietošanas punkta izvēles lielumu varat iestatīt izvēlnē Tools & gt Transform. Skatiet sadaļu Pārveidošanas preferences.

Metināšanas punkta rīks izmanto arī Snap reģiona izmēru, lai atrastu punktu, kur piestiprināt un metināt. Reģiona lielumu var mainīt, izmantojot izvēlni Snap. Varat arī mainīt reģiona lielumu, izmantojot taustiņu kombināciju Ctrl+peles ritenis, taču tas darbojas tikai tad, ja neizmantojat peles riteni, lai tuvinātu-sk. Peles ritenis sadaļā Kameras preferences.

Jūs varat arī kontrolēt punktu parādīšanu, izmantojot rīku Rādīt punktus pārvietošanas rīkā opciju Rīki un gt pārveidošana.

Divu punktu interaktīva metināšana, izmantojot rīku Move Point

Aktivizējiet rīku Move Point (rīkjoslā Model izvēlieties Modify Component Move Point Tool).

Nospiediet un turiet Alt, pēc tam sāciet pārvietot punktu. Punkts tiek pārvietots uz citiem punktiem, kad to pārvietojat.

Kad punkts, kuru pārvietojat, noklikšķina uz vēlamo mērķa punktu, atlaidiet peles pogu. Metinātā virsotne tiek izveidota mērķa punkta pozīcijā.

Tiek lietots WeldPoints operators, bet tā rekvizītu redaktors netiek automātiski atvērts.

Plašāku informāciju par rīku Move Point kopumā skatiet sadaļā Move Point Tool izmantošana.

Metināt izvēlētos punktus mērķos vai to vidējā stāvoklī

Izvēlieties metināmos punktus.

Izvēlieties Modificēt poli. Tīkla metināšanas punkti uz mērķi/vidējo no rīkjoslas Modelis.

Izvēlieties mērķa virsotni vai virsotņu kopu:

Ja izvēlaties vienu virsotni, visi atlasītie punkti tiek metināti pie tā.

Ja izvēlaties vairākas virsotnes vai virsotņu kopu, katra atlasītā virsotne tiek metināta atsevišķi līdz tuvākajai mērķa virsotnei.

Ja ar peles labo pogu noklikšķiniet, lai pabeigtu izvēli, neizvēloties mērķi, atlasītie punkti tiek sametināti savā vidējā pozīcijā.

Tiek lietots WeldPoints operators, bet tā rekvizītu redaktors netiek automātiski atvērts.

Metināšanas malas apvieno vienu vai vairākus pārrobežu pārus uz viena daudzstūra sieta objekta. Bridging pievieno daudzstūrus starp pāri vērstu robežu pāriem uz viena daudzstūra tīkla objekta.

Jūs varat izmantot šīs funkcijas, lai "saspiestu" pretējās robežas (ja ir atlasītas divas malas) vai ierobežotu efektu līdz jūsu norādītajām malām (ja ir atlasītas vairāk nekā divas malas).

Lai metinātu vai savienotu izvēlētās malas

Ja vispirms izvēlaties vairāk nekā divas malas, metināšana vai savienošana tiek veikta tikai izvēlētajās malās. Jūs joprojām varat izmantot parametru Attālums, lai norādītu pielaidi metināšanai vai atsevišķu malu pāru savienošanai.

Atlasiet robežas malas, kuras vēlaties metināt vai savienot. Varat norādīt, kā tiek interpretēta atlase, 3. darbībā iestatot mērķi.

Jūs varat arī norādīt malas, atlasot visus blakus esošos punktus. Neierobežotās malas tiek ignorētas. Ja izvēlaties daudzstūra acu objektu, visas robežas tiek apvienotas.

Izvēlieties Modificēt poli. Tīkla metināšanas robežas punkti/malas vai modificēt poli. Tīkla tilta robežas punkti/malas no modeļa rīkjoslas.

Tiek atvērts WeldEdges Op rekvizītu redaktors, un opcija Grow Selection nav pieejama. Pielāgojiet opcijas pēc vēlēšanās:

Attālums kontrolē pielaidi starp saskares malām. Palielinot šo vērtību, tiek ietekmēti vairāki malu pāri.

Mērķis nosaka, kuras malas metināt, ja tiek atrasts atbilstošs kandidātu pāris: Input Edges metina izvēlēto malu pārus savā starpā. .

Tilts kontrolē malu savienošanas darbību.

Kad šī opcija ir izslēgta, pāri malu malas tiek apvienotas. Šī opcija pēc noklusējuma ir izslēgta, ja izvēlējāties metināšanas robežas punktus/malas,

Kad šī opcija ir ieslēgta, malu pārus savieno jauni daudzstūri. Šī opcija pēc noklusējuma ir ieslēgta, ja izvēlējāties tilta robežas malas.

Rāvējslēdzēju pretējās robežās

Jūs varat izmantot opciju Grow Selection, lai "saspiestu" pretējās robežas tikai tad, ja vispirms atlasāt ne vairāk kā divas malas.

Izvēlieties vienu malu uz vienas no robežām, ko vēlaties metināt vai savienot.

Ja vēlaties, atlasei pievienojiet atbilstošo malu uz pretējās robežas.

Ja nenorādīsiet otro malu, tuvākā pretējā robeža tiks izmantota automātiski.

Izvēlieties Modificēt poli. Acu metināšanas robežas punkti/malas vai modificēt poli. Acu tilta robežas malas no modeļa rīkjoslas.

Tiek atvērts īpašumu redaktors WeldEdges Op, un ir pieejama opcija Grow Selection. Pielāgojiet opcijas pēc vēlēšanās:

Attālums kontrolē pielaidi starp saskares malām. Palielinot šo vērtību, tiek ietekmēti vairāki malu pāri.

Tilts kontrolē malu savienošanas darbību.

Kad šī opcija ir izslēgta, pāri malu malas tiek apvienotas. Šī opcija pēc noklusējuma ir izslēgta, ja izvēlējāties metinājuma robežas punktus/malas.

Kad ieslēgts, malu pārus savieno jauni daudzstūri. Šī opcija pēc noklusējuma ir ieslēgta, ja izvēlējāties tilta robežas malas.

Grow Selection ļauj metināt arī robežas, kas atrodas blakus izvēlētajām. Izslēdziet šo opciju, lai metinātu tikai divas sākotnējās robežas.

Leņķis 90 metina divas robežas tikai tad, ja atšķirība starp to orientācijām ir lielāka par 90 grādiem. Tas novērš rāvējslēdzēja efektu, metinot malu pārus, kas nav vērsti viens pret otru. Apsverot malu orientāciju, atcerieties, ka malas tiek sakārtotas pretēji pulksteņrādītāja virzienam, kad parastās ir vērstas pret jums.

Jūs varat interaktīvi sadalīt malas, izmantojot rīku Split Edge vai ar skaitlisku precizitāti, izmantojot komandu Split Edge (ar split control). Abas metodes ļauj automātiski sadalīt paralēlas malas un pievienoties jaunajām virsotnēm. Varat arī sadalīt malu cilpas, vienlaikus saglabājot izliekuma nepārtrauktību, izmantojot rīku Add Smooth Edge Loop. Visos trīs gadījumos SplitEdge operators tiek pievienots objekta konstrukcijas kaudzei.

Interaktīvi sadalīt malas

Rīks Split Edge ļauj interaktīvi pievienot virsotnes gar esošajām malām. Varat arī automātiski sadalīt paralēlas malas un pievienoties jaunajām virsotnēm.

Atlasiet daudzstūra tīkla objektu.

Izvēlieties Modificēt poli. Acu šķelto malu rīks no modeļa rīkjoslas vai nospiediet].

Pārvietojiet rādītāju virs esošās malas. Mērķa mala kļūst sarkana.

Lai pievienotu jaunu virsotni, noklikšķiniet uz vēlamās vietas gar izvēlēto malu.

Lai automātiski pievienotu un pievienotu jaunas virsotnes gar paralēlām malām, noklikšķiniet uz peles vidējās pogas. Ņemiet vērā, ka tas vislabāk darbojas ar četrstūrainu daudzstūru rindu.

Jūs varat vienmērīgi sadalīt malu, noklikšķinot, vienlaikus nospiežot Ctrl.

Jūs varat pielāgot jaunās virsotnes atrašanās vietu gar malu, pārvietojot peli pirms peles pogas atlaišanas. Tomēr atšķirībā no rīka Pievienot virsotni, kas aprakstīts virsotņu pievienošanā, jauno virsotni var pārvietot tikai pa malu.

Ja jums ir grūtības sadalīt malu esošās virsotnes tuvumā, mēģiniet tuvināt skatu.

Ja nepieciešams, atkārtojiet 3. un 4. darbību.

Kad esat pabeidzis malu sadalīšanu, aizveriet rīku Split Edge, ar peles labo pogu noklikšķinot.

Lai sadalītu malas ar skaitlisku precizitāti

Komanda Split Edge sadala malas ar skaitlisku precizitāti. Varat arī automātiski sadalīt paralēlas malas un pievienoties jaunajām virsotnēm.

Atlasiet dažas malas uz daudzstūra tīkla objekta.

Izvēlieties Modificēt poli. Mesh Split Edge (ar sadalītu vadību) no modeļa rīkjoslas. Tiek atvērts īpašumu redaktors SplitEdge Op.

Iestatiet opcijas pēc vēlēšanās:

Ratio Edge nosaka, kur jaunā virsotne atrodas gar malu.

Parallel Edge Loop papildus sadala malas paralēli atlasītajām malām. Ņemiet vērā, ka tas vislabāk darbojas ar četrstūrainu daudzstūru rindu.

Savienot pievieno malas, kas savieno jaunizveidotās virsotnes. Tam ir ietekme tikai tad, ja ir ieslēgta paralēlās malas cilpa.

Rīks Add Smooth Edge Loop sadala paralēlas malas pa četrpusējo topoloģiju, vienlaikus saglabājot sākotnējo virsmas izliekuma nepārtrauktību.

Atlasiet daudzstūra tīkla objektu.

Izvēlieties Modificēt poli. Siets Pievienojiet gludas malas cilpas rīku no modeļa rīkjoslas.

  • Noklikšķiniet, lai pievienotu cilpu, kas sadala malu šajā vietā. Pirms peles pogas atlaišanas varat vilkt, lai pielāgotu atrašanās vietu. Atrašanās vieta tiek fiksēta līdz viduspunktam, kad tā ir tuvu.
  • Noklikšķiniet ar vidējo pogu, lai pievienotu cilpu, kas vienmērīgi sadala malu.
  • Pārslēgt Saglabāt tīkla nepārtrauktību cilpām, kuras pievienojat vēlāk.
  • Atveriet rekvizītu redaktoru pēdējam SplitEdge operatoram.
  • Iziet no rīka. Varat arī nospiest taustiņu Esc vai aktivizēt citu rīku.

Sadalīt daudzstūri rīks ļauj interaktīvi sadalīt n-sānu daudzstūrus n jaunos daudzstūros. Piemēram, trīsstūris sadalās trīs jaunos daudzstūros, četrinieks - četros jaunos daudzstūros utt.

Atlasiet daudzstūra tīkla objektu.

Izvēlieties Modificēt poli. Acu sadalītā daudzstūra rīks no modeļa rīkjoslas.

Pārvietojiet rādītāju virs esoša daudzstūra. Mērķa poligons kļūst sarkans.

Noklikšķiniet ar peles kreiso taustiņu, lai sadalītu atlasīto daudzstūri, zīmējot malas no noklikšķinātā punkta uz katru malu. Četrstūrainu daudzstūru gadījumā tiek izveidoti divi kolineāri malu pāri, iegūstot krusta formu.

Noklikšķiniet uz vidējā klikšķa, lai uzzīmētu jaunas malas no noklikšķinātā punkta uz katru mērķa daudzstūra virsotni.

Noklikšķiniet ar peles labo pogu, lai zīmētu jaunas malas no noklikšķinātā punkta līdz mērķa daudzstūra katras malas viduspunktam.

Ja vēlaties, izmantojot šo rīku, varat aktivizēt noklikšķināšanu. Plašāku informāciju par noklikšķināšanu skatiet sadaļā Snapping.

Ja nepieciešams, atkārtojiet 3. un 4. darbību.

Kad esat pabeidzis daudzstūru sadalīšanu, izejiet no sadalītā daudzstūra rīka, nospiežot Esc vai izvēloties citu rīku.

Daudzstūru un malu sadalīšana

Jūs varat vienmērīgi sadalīt daudzstūrus un malas, izmantojot komandu Sadalīt daudzstūrus/malas. Katram komponentu veidam opcijas ir atšķirīgas.

Kā alternatīvu šīs komandas izmantošanai daudzstūru sadalīšanai varat izmantot arī vietējo apakšnodaļu, kā aprakstīts sadaļā Daudzstūru sadalīšana lokāli.

Poligonus vienmērīgi sadalīt

Atlasiet dažus daudzstūrus, daudzstūru kopas vai daudzstūra acu objektus.

Izvēlieties Modificēt poli. Acu tīkls sadala daudzstūrus/malas no rīkjoslas Modelis vai nospiediet Shift+D.

Rekvizītu redaktorā SubdividePolygon Op iestatiet vēlamās opcijas:

Apakšnodaļas veids nosaka jauno daudzstūru formu:

Plus pievieno malas no daudzstūra ģeometriskā centra līdz katras malas viduspunktam.

Dimants zīmē malas, kas savieno daudzstūra malu viduspunktus.

X velk malas no daudzstūra viduspunkta uz katru tā virsotni.

Trīsstūri trīsstūri visus četrstūrus un n-sānu daudzstūrus.

Iterācijas kontrolē, cik reizes process tiek atkārtots daudzstūros, kas tiek izveidoti katrā solī. Šī opcija neietekmē, ja apakšnodaļas veids ir trīsstūri.

Flīzei ir redzams efekts tikai tad, ja abu apakšnodaļu veids ir dimants vai X un atkārtojumi ir lielāki par 1.

Kad tas ir ieslēgts, visi atkārtojumi, izņemot pēdējo, ir Plus tipa, un pēdējā apakšiedaļa ir norādītā tipa. Tas dod flīzēm līdzīgu modeli, strādājot ar četrstūrainu daudzstūri.

Lai vienmērīgi sadalītu malas

Atlasiet dažas malas uz daudzstūra tīkla objekta.

Izvēlieties Modificēt poli. Tīkla apakšsadala daudzstūrus/malas no modeļa rīkjoslas.


Uzstādīt pagrieziena punkts uz “aktīvo elementu” un transformācijas orientāciju uz “normālu”.

Dublējiet malu, kurai vēlaties paralēli, pārvietojiet to ar G un Z divreiz (pa parasto) un izspiediet to (E + Z), lai izveidotu skaidru normālu.

Izvēlieties savu neprecīzo malu un pēc tam izveidotais daudzstūris, tātad daudzstūris ir aktīvais elements.

Nospiediet S, lai mērogos, divreiz Z un pārvietojiet peli vai vienkārši nospiediet 0, lai padarītu to pilnīgi taisnu.

Izdzēsiet pagaidu daudzstūri.

Darbojas vienmēr, neatkarīgi no tā, kā jūsu objekts ir dīvaini pagriezts 3D telpā.

IMO ātrākais veids, kā to izdarīt, ir izmantot aktīvs elements kā pagrieziena punkts.

Iestatiet šarnīru uz Aktīvs (⎇ Alt.):

Atlasiet virsotnes, kuras vēlaties izlīdzināt, un noteikti atlasiet virsotni, kuru vēlaties izlīdzināt līdz pēdējai (lai tā būtu Aktīvs virsotne):

Mērogot (S) izvēli līdz 0 pa asi, kuru vēlaties izlīdzināt. Šajā gadījumā X ass. Tātad S X 0:

Ja jūsu objekts nav izlīdzināts ar asīm, varat izmantot pielāgotu pārveidošanas orientāciju.

Pirms veicat trīs iepriekš minētās darbības, atlasiet vienu no malām, kas darbojas gareniski, un nospiediet ⎈ Ctrl un#9095 Alt Space. Tādējādi tiks izveidota pielāgota transformācijas orientācija ar vienu no asīm, kas ir izlīdzinātas ar izvēlēto malu (šajā gadījumā Y ass):

Ņemiet vērā: lai mērogošanā izmantotu pielāgoto orientāciju, jums divreiz jānospiež ass taustiņš. Tātad S Y Y 0:

  1. Atlasiet visas virsotnes, kuras vēlaties izlīdzināt
  2. Lai tos izlīdzinātu, pielāgojiet vajadzīgo asi līdz 0, tāpēc manā gadījumā es nospiedu S Y 0
  3. Ieslēdziet magnētu un pieskarieties virsotnei
  4. Satveriet Y ass rokturi un pārvietojiet to virs virsotnes, kurā vēlaties izlīdzināt atlasītās virsotnes.

Tas man ir vieglākais veids.

Kad modelis ir saskaņots ar koordinātu sistēmu, mana vēlamā metode ir mērogošana:

Atlasiet virsotnes Alt - RMB S, X, 0

Pēc tam tulkojiet manuāli G.

Pagriežot objektu, šo metodi var izmantot arī lokālajai asij. Divreiz nospiediet X, lai ierobežotu lokālo asi.

Iespējojiet papildinājumu LoopTools, ja vēl neesat to izdarījis

Snap kursors visattālākajā vertikā, šī vieta jāatzīmē, lai veiktu vēlāku darbību

Atlasiet vertikālo līniju un izmantojiet atbilstošo priekšējo/sānu orto skatu, lai jūs skatītos tieši uz malu. Noklikšķiniet uz W > Cilpas rīki> Izlīdzināt un iestatiet režīmu uz "no skata". Tas novirzīs visas vertes uz taisnu līniju, bet tas atradīsies vidējā vietā, nevis vistālāk. Par laimi 2. solī mēs atzīmējām vistālāko punktu.

Nospiediet Shift + S un izvēlieties "atlase kursoram (nobīde)". Tam vajadzētu visu novest līdz tālākajam punktam.

Tas nav vienkāršākais vai vistiešākais veids, bet jums vajadzētu paveikt darbu, nepārvietojot katru vertikāli atsevišķi vai neuzminot pozīciju.


Blakus esošo daudzstūru veidošana

Tagad jums ir jāizveido vēl viens daudzstūris, lai aizpildītu atstarpi starp šiem diviem daudzstūriem. Jūs varētu pieskarties katrai virsotnei, taču vienkāršāks veids ir izmantot automātiskās pabeigšanas daudzstūra rīku, kas izmanto esošo daudzstūru ģeometriju, lai izveidotu jaunus blakus esošus daudzstūrus, kas nepārklājas vai kuriem ir atstarpes.

  1. Noklikšķiniet uz veidnes Tracts, pēc tam uz rīka Auto-Complete Polygonon logā Izveidot funkcijas, lai padarītu to par aktīvo celtniecības rīku.
  2. Pieskarieties tikko izveidotā taisnstūra apakšējam kreisajam stūrim un noklikšķiniet.
  3. Virzieties uz dienvidiem, piespiediet sākotnējā esošā J formas daudzstūra stūri un noklikšķiniet, lai pievienotu virsotni.
  4. Nospiediet F2 vai noklikšķiniet uz Pabeigt skici funkciju rīkjoslas mini rīkjoslā.

Izmantojot automātiskās pabeigšanas daudzstūra rīku, ArcMap automātiski izmanto apkārtējā daudzstūra formas šajā slānī, lai izveidotu jaunā daudzstūra ģeometriju.

Jaunās funkcijas ir izveidotas, izmantojot veidnē norādītās noklusējuma atribūtu vērtības (privātas). Ja vēlaties pievienot citu informāciju, piemēram, ID numurus, atlasiet līdzekļus un logā Atribūti ierakstiet vērtības.


1 Atbilde 1

Apstrādājiet daudzstūri un tā krustojošās līnijas kā nenovirzītu grafiku ar cilpām un izmantojiet tam cilpas noteikšanas algoritmu. Tā kā mēs zinām savienojošās līnijas, lietas kļūst nedaudz vienkāršākas, un mēs faktiski varam atrisināt problēmu O (V).

Tas būtu modelis, ar kuru pietiek, lai izskaidrotu pamatprincipu. Mēs varam pārveidot savu daudzstūri taisnstūrī, ko sagriež līniju saraksts. Tā kā līnijas nedrīkst krustoties, tas attieksies arī uz iegūto taisnstūri. Now one can start in an corner of the graph and travel alongside both edges until on both paths a vertex of degree 3 is reached. Thus we've found our first polygon that results from slicing the original polygon. Go on from the two points reached in the previous step until you reach vertices of degree 3 are reached again. Terminate this step when the two paths meet and you've listed all possible polygons.

A diagram of running a single step of this process:


5 atbildes 5

This problem was solved 30 years ago:

ElGindy and Avis, "A linear algorithm for computing the visibility polygon from a point", J. Algorithms 2, 1981, p. 186--197.

There is a very nice paper by Joe & Simpson, 1985, "Visibility of a simple polygon from a point," that offers carefully verified pseudocode: (PDF download link). This surely has been implemented many times since, in many languages. For example, there is a link at the Wikipedia article on the topic.

I've modified the algorithm as it was incorrect. I hope this time it covers all cases!.

Start from a reflex a, ļaujiet a ' the next vertex and follow the polygon until you find an edge that crosses a--a' in the side a ', ļaujiet b the point of intersection of this edge with the line a--a' un c the end point of the edge (the one to the right of a--c).

Now continue going through the edges of the polygon, and if an edge crosses the segment a--b from left to right then set b to the new point of intersection and c to the end vertex. When you finish we have a triangle a--b--c. Now starting again from c look every vertex to see if it is inside the triangle a--b--c and in that case set c to the new vertex. At the end a--c is a diagonal of the polygon.

Here is an implementation in C that assumes that the reflex point a is in P[0] :

You can test any individual vertex in O (n) time, and hence test all vertices in O(n^2). To test any if any individual vertex U is visible from V, construct the line between V un U. Let us call this line L. Now, test L to see if it intersects any of the polygon edges. If it does not, U ir obscured from V. If it does, U ir obscured.

Further, you can test if L lies within the polygon like so: Assume the incident edges on V ir E1 un E2. Calculate the signed angles between E1 un E2 (call this a1) and between E1 un L (call this a2). The sign of a2 should be the same as a1 (i.e., L is on the 'same' side of E1E2 is), and a2 should be smaller than a1 (i.e., L 'comes before' E2).

Be careful with your intersection tests, as L will trivially intersect the polygon edges incident to V. You can ignore these intersections.

Also, if U shares any of the edges incident to V, U is trivially visible from V.


2 atbildes 2

Here is a possible line of attack for an exact solution by exhaustive trials just ideas.

My guess is that a solution is achieved when there are three contacts. I mean three vertexes of either polygon touching an edge of the other or conversely. (If there are less than three contacts, you can inflate the internal polygon so that it comes into a third contact.)

Given two arbitrary triangles, it shouldn't be so difficult to find all possible three-contact positions.

So the global scheme is to take all triples of vertexes/sides from one polygon, and take all complementary triples of sides/vertexes of the other. For every combination, momentarily consider that you have triangles and find the possible three-contact positions. For for every candidate position check if the inner polygon stays confined in the outer one. In the end, keep the admissible solution with the largest scale factor.

For polygons with N and M sides, there will be O(N³M³) configurations to try, and the containment test can be as costly as O(NM) . So this approach is only viable for very small polygons.


This is currently an outstanding feature request (acknowledged by Google), issue 3760.

Here's my solution: http://jsbin.com/ajimur/10. It uses a function that adds a delete button to the passed in polygon (below the undo button).

Alternatively, someone suggested this approach: right-click to delete closest vertex, which works fine but is somewhat lacking in UI finesse. I built on the code from the link to check if the click was inside (or within 1 pixel of) the node - in a JSBin here: http://jsbin.com/ajimur/.

EDIT: as Amr Bekhit pointed out - this approach is currently broken, as the events need to be attached to the polygon.

Google Maps now provides a "PolyMouseEvent" callback object on events that are triggered from a Polygon or Polyline.

To build on the other answers which suggested a solution involving a right click, all you would need to do is the following in the latest versions of the V3 API:

You'll notice that any complex calculations on whether or not we are near the point are no longer necesary, as the Google Maps API is now telling us which vertex we've clicked on.

Note: this will only work while the Polyline/Polygon is in edit mode. (Which is when the vertices you might want to delete are visible.)

As a final thought, you could consider using a click or double click event instead. "Click" is smart enough to not trigger on a drag, though using a single click trigger might still surprise some of your users.


Creating a multipart feature

Sometimes, you need to create a feature that has more than one physical part but only references one set of attributes in the database. These are called multipoint for point or multipart for line and polygon features. A group of islands could be represented as a multipart polygon feature. To create a multipart feature, you need to finish each part first, then finish the whole sketch once you have created the individual parts. Once you create the feature and click one part of the feature to select it, all parts are automatically selected because they all belong to one multipart feature. Also note that there is one selection anchor (the "x") for a multipart feature and one record in the attribute table.

Keep in mind that parts in a multipart polygon are spatially separated. They can touch each other at vertices, but they cannot share edges or overlap. When you are sketching a multipart polygon, any parts that share an edge will be merged into a single part when you finish the sketch. In addition, any overlap among parts will be removed, leaving a hole in the polygon.

If you have existing features that you want to combine to make a multipart feature, you can do this with either Merge or Union. Merge allows you to combine features within the same layer, while Union works with features in different layers. You can also use Merge or Union to add another part to a multipart feature. To do this, create the new feature, select it and the existing feature, and then use Merge or Union.

To make multipart features into separate features, you can use either the Explode command on the Advanced Editing toolbar or the Multipart to Singlepart geoprocessing tool.

To create a vertex in a line

Click a line feature template in the Create Features window and click the Line tool .

To create a vertex in a polygon

Click a polygon feature template in the Create Features window and click the Polygon tool .

Hold down the SHIFT key and double-click the last vertex as a shortcut to finishing the part.


A polygon chaining algorithm to simplify area encoding

Although cumbersome to encode, polygon data structures continue to be a preferred means of storing and manipulating cartographic data in many geographic information systems. The polygon chaining algorithm presented in this paper simplifies polygon encoding by combining many of the strengths of both polygon and topological data structures but few of their attendant weaknesses.

The algorithm relies on two sets of data—nts and lines. One polygon reference point is digitized for each polygon to be chained. Lines separating contiguous areas are encoded in any direction and order and may cross other lines. The algorithm inspects these lines for consistency and automatically corrects several common encoding errors. Nodes are then chained around the polygon reference points to form clockwise polygons.

After reviewing the advantages and disadvantages of selected data structures, the paper outlines the principal steps in the algorithm and how data is inputted, edited and chained. Discussion then turns to how the algorithm is implemented in a FORTRAN IV program. A sample problem is also presented.


Skatīties video: 9 - сынып. Геометрия. Дұрыс көпбұрыштар, олардың қасиеттері мен симметриялары.. (Oktobris 2021).