INLEIDING
Zoals uit de titel al blijkt, wil ik een programma schrijven om handgetekende cirkels mee te beoordelen. Voordat ik begin over het programma zelf, wil ik eerst het onderwerp introduceren (eerste 3 alinea’s). Daarna zal ik even een brainstorm doen over hoe de structuur van het programma zou kunnen zijn.
Begin dit jaar heb ik dit onderwerp gekozen voor wiskunde als praktische opdracht op aanbeveling van mijn leraar. Nu wil ik ermee doorgaan voor mijn profielwerkstuk. Als je op youtube zoekt met “freehand circle drawing” zul je zien dat er heel wat mensen zijn die uit de losse pols een hele mooie cirkel kunnen tekenen. Er is zelfs een wedstrijd georganiseerd waarbij een zekere Alexander Overwijk heeft gewonnen. Die wedstrijd was waarschijnlijk niet serieus (er was waarschijnlijk een jury aanwezig die de cirkels subjectief beoordeelde)
Mijn opdracht was dus om een wiskundige methode te verzinnen om deze cirkels te beoordelen. Ik heb vele methoden gevonden met allemaal hun eigen voor- en nadelen, maar uiteindelijk heb ik één methode eruit gepikt. Voor de mensen die het kennen: bij de methode die ik eruit had gepikt wordt er gebruik gemaakt van regressie analyse (in dit geval circulaire regressie analyse. Als je niet weet wat regressie analyse is, maakt dat niet veel uit om het verder wel te begrijpen. Ik gebruik namelijk een programma die alles automatisch uitrekent). Niet iedereen weet wat het is en daarom zal ik het ook kort toelichten: met regressie analyse kan je, nadat je een bepaald aantal coördinaten weet, de formule van de “best passende cirkel” berekenen. Wiskundig gezien bestaat een cirkel uit oneindig veel punten en daar hebben we te maken met de beperkingen van de praktijk. Ik heb besloten om een smartboard te gebruiken voor het tekenen van de cirkels. Elke pixel levert 2 coördinaten op. Ik ben ook in het bezit van een programma, genaamd Maple 12, die de formule automatisch kan berekenen als jij de punten maar invoert. Op die manier ben je dus niet meer urenlang aan het rekenen.
Leuk zou je denken! Je hebt de best passende cirkel berekend, maar je weet nog steeds niet welke cirkel nou beter is. Daarom heb ik besloten om te kijken naar de oppervlakte tussen de getekende cirkel en de best passende cirkel; Hoe groter de oppervlakte, hoe slechter de cirkel. In de praktijk wil ik het aantal niet gekleurde pixels tellen tussen de getekende cirkel en de best passende cirkel.
DE MENSEN DIE MEER INFO WILLEN KUNNEN ALTIJD HET NODIGE DEEL VAN DE PRAKTISCHE OPDRACHT KRIJGEN.
DE STRUCTUUR VAN HET PROGRAMMA
Zelf heb ik natuurlijk al uitgedacht hoe de structuur van het programma zou kunnen zijn, maar ik heb zelf geen programmeerkennis en het kan dus zijn dat ik belangrijke elementen vergeet in het vervolg (graag reacties).
Zoals ik al had aangegeven hebben we op school een smartboard tot onze beschikking. Het doel is dus om een wedstrijd te organiseren waarbij meerdere mensen een cirkel tekenen.
1) Het programma moet elke pixel van de getekende cirkel omzetten naar twee coördinaten. Net zoals in Paint de pixels eigenlijk met “coördinaten” worden aangegeven.
2) Het programma moet de gevonden coördinaten invoeren in het programma Maple 12. (Dit moet gebeuren op een bepaalde manier gebeuren. Het moet ingevoerd worden ergens in het midden van de worksheet. De punten (6,2) (3,2) (9,5) (2,3) (5,2) moet je als volgt invoeren: Px := [6, 3, 9, 2, 5]: Py := [2, 2, 5, 3, 2]
3) Het zou mooi zijn als het programma “Maple 12” ook automatisch zijn werk liet doen door op een knop “execute the entire worksheet” te klikken, maar dat is optioneel. Handmatig is het een kwestie van eenmaal klikken namelijk.
4) Maple berekent de formule van de best passende cirkel. Het programma neemt deze formule en tekent op hetzelfde blad ook de best passende cirkel.
5) Nu kan het beoordelen beginnen. Dat moet als volgt gebeuren: het geschreven programma moet het aantal niet gekleurde pixels tellen tussen de best passende en getekende cirkel. (Het aantal pixels moet dan de oppervlakte voorstellen)
6) Het programma moet het aantal pixels uitdrukken.
7) Uiteindelijk wil ik er ook een cijfer aan toekennen. Een perfect getekende cirkel krijgt dus een 10 en na een bepaalde grens geef je de cirkel een 1 als cijfer. Om een goede grens in te stellen moet het programma t/m punt 6 wel eerst helemaal in elkaar zitten, anders zou de grens namelijk misschien te hoog of te laag ingesteld zijn.
VERDERE INFORMATIE EN MIJN VRAGEN
Het profielwerkstuk moet voor de kerstvakantie van 2009 af zijn. Mijn laatste dag om het in te leveren is dus vrijdag 18 december. Ik wil zo ver mogelijk komen tot aan de einddatum en daarna ook nog gewoon doorgaan met het schrijven van het programma ook al telt het niet meer mee voor mijn PWS.
Graag zou ik van jullie sowieso algemene informatie willen ontvangen. Bijvoorbeeld welke programmeertaal ik moet gebruiken (hou daarbij wel rekening met het feit dat ik totaal geen programmeerkennis heb). Welke boeken kan ik het beste gebruiken voor dat doel? Welke programma’s zouden handig zijn terwijl ik hiermee bezig ben? Verder hebben jullie misschien ook suggesties voor de structuur van het programma of zelfs andere suggesties, op- of aanmerkingen. Hoe dan ook; ALLE helpende reacties zijn welkom. Mensen die mij actief willen helpen zijn natuurlijk altijd welkom!!!
Bij voorbaat dank
Fatih C.