Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Mattesnille Polygon Area

Postades av 2004-01-06 15:31:39 - Sven Åke Persson, i forum visual basic - allmänt, Tråden har 10 Kommentarer och lästs av 1520 personer

Ytberäkningar av Polygoner ligger lite neutralt under "Systemutveckling Generellt"
så jag tillåter mig att sk. dubbelposta även här.

Skulle vara intressant att få reda på om det här programmet räknar rätt Programarkivet:Polygon beräkna Area

Mina mattekunskaper sträcker sig bara till Trianglar och Kvadrater,där funkar det.


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 17:04:22 - Per Hultqvist

Hej Sven,

Det verkar fungera på konvexa polygoner, t ex :

0,0
6,-1
8,0
6,3
3,3
0,0

som har arean 20,5. Denna ger korrekt resultat. Men det exemplet som Niklas Jansson gav i Systemutvecklings-tråden fungerar inte :

0,0
9,0
9,5
7,5
7,2
3,5
0,5
0,0

Ditt program ger storleken 60 men korrekt svar är 39 om jag räknat rätt. Jag har skrivit om funktionen CalculateArea så att den använder Jans metod (som han föreslog i Systemutvecklingstråden) :

<code>
Function CalculateArea(ByVal GridSpacing As Integer) As Double
Dim Area As Double
For N = 1 To UBound(c) - 1
Area = Area + (c(N + 1).X - c(N).X) * (c(N + 1).Y + c(N).Y)
Next
Area = Area + (c(1).X - c(UBound(c)).X) * (c(1).Y + c(UBound(c)).Y)
Area = Area / 2 / GridSpacing / GridSpacing
CalculateArea = Round(Area, 10)
End Function
</code>


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 18:20:11 - Sven Åke Persson

Vill inte låta okunnig . Men kan inte hålla mig.

Vad är en konvex polygon ? och vad är motsatsen ? Konvex buktar utåt(översida hand).


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 18:26:22 - Per Hultqvist

Precis som du säger så är en konvex polygon en polygon som "buktar utåt". Som en t ex stoppskylt ungefär. Se denna länk för ett exempel på en konvex och en konkav polygon :
http://www.abc.se/~m9847/matmin/polygon.html
Sedan verkar man skilja på komplexa och icke-komplexa polygoner vilket kan ses på följande länk :
http://www.alienryderflex.com/polygon/


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 21:30:16 - Sven Åke Persson

Aha var det så enkelt. Testade en Konkav enl nedan tycker att det blir rätt.

X = 0 Y = 0
X = 4 Y = 0
X = 4 Y = 4
X = 2 Y = 2
X = 0 Y = 4
X = 0 Y = 4
X = 0 Y = 0
Svaret blir 12 Rätt. Något förbiseende från min sida ?


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 22:17:50 - Sven Åke Persson

Har nu lagt in din funktion efter Jans metod.Fy fae vad duktiga Ni är att fixa detta så snabbt.
Störtimpad. Har nu lagt en korrigerad version i FilArean Programarkivet:Polygon beräkna Area


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 22:49:39 - Niklas Jansson

Läste nyss definitionen på konvex. (Vet inte om det var exakt så här, men det är ju ganska självklart)
Tag en godtrycklig punkt P och en godtycklig punkt Q inuti polygonen, och kalla linjen som går mellan P och Q för L. Om hela L ligger i polygonen för alla P och Q så är polygonen konvex.


Så hade vi löst det... =)


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-06 23:28:25 - Per Hultqvist

Den definitionen är solklar och jag känner igen den från mina matematikstudier. Det är dock en definition som är av karaktären "lättare sagt än gjort" :-)

Skulle man programmera en funktion IsConvex som avgör huruvida polygonen är konvex enligt den definitionen så skulle det bli jobbigt :-)

Kunde man inte definiera en konvex polygon som att varje linje i polygonen ska "vrida sig åt vänster" (alternativt åt höger). Man skulle nog kunna utnyttja formeln för vinkeln mellan två räta linjer :

tan(µ)=+/- (k1-k2)/(1+k1*k2)

där k1 är riktningskoefficienten för linje L1 och k2 för linje L2. Med denna så borde man kunna säga att

(k1-k2)/(1+k1*k2)>0 (alt <0)

för alla linjer i polygonen, eller något sådant. Spånar bara lite...


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-07 14:39:01 - Niklas Jansson

Naturligtvis går det inte att använda definitionen i praktiken. =)

Problemet med din variant är att man inte kan upptäcka om det är en polygon som korsar sig själv, men vid närmare eftertanke kunde man ju tänka sig att kolla på totalsumman. Är jag inte helt ute och cyklar nu så kan den inte överstiga PI radianer.

Fast jag tror fortfarande det är enklast med en metod med orientering mha determinanter. De är ganska snabba att beräkna och man får resultatet direkt.


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-07 14:45:30 - Sven Åke Persson

Intressant att följa "snille spekulerar" tror att jag förstår det mesta Ni
skriver , tycker det var en förbaskat bra tråd.Såg för många år sedan en vbx
som byggde på polygoner och USAkartan med deras stater.

Om man klickade inom en stats polygon så "vipps" hände det Datasaker.

Nu förstår jag mer om detta Tack.


Svara

Sv: Mattesnille Polygon Area

Postades av 2004-01-12 00:51:27 - Markus Jarderot

Hultan skrev:
(k1-k2)/(1+k1*k2)>0 (alt <0)



Varför dela med (1+k1*k2) ?? den producerar ju ett odefinierat värde om k1 * k2 = -1 (rätvinkliga) så en kub skulle inte fungera teoretiskt
är det inte lättare att bara kolla om k1 > k2 (alt. <)

orkar inte kolla om ovanstående stämmer eftersom det är ganska sent...


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 557
27 958
271 741
508
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies