Op Art

In dit project ga je code schrijven om gereedschap te maken om een kunstvorm genaamd Op Art te verkennen.

Geen Afbeelding

Eerst gebruik je de muis om rechthoeken te tekenen. Als de gebruiker vervolgens op de spatiebalk drukt, eindigt de tekenfase en wordt de muisklik een 'verfemmer' die begrensde gebieden vult met kleur. Hier zijn twee voorbeelden van fase 1. rechthoeken tekenen en fase 2. gesloten gebieden vullen.

Voorbeeld A. Geen Afbeelding Geen Afbeelding

Voorbeeld B. Geen Afbeelding Geen Afbeelding


  1. 'H3-OpArt'Geen Afbeelding

  2. In de tekenfase ga je rechthoeken tekenen door eerst te klikken en de muis dan van de linkerbovenhoek naar de rechteronderhoek te slepen. Het is handig om hiervoor een Abstract Data-Type (ADT) te maken om de coördinaten van deze hoeken op te slaan.

    De hoek ADT werkt net als de punt ADT die je gemaakt hebt in Hoofdstuk 2 Les 2 P2: Abstracte datatypes.

    Geen Afbeelding

    1. Maak een hoek constructor, die een lijst rapporteert met de x- en y-coördinaten van een hoek.

      Geen Afbeelding


    2. Maak twee selectoren, x van hoek and y van hoek die als invoer een hoek hebben en respectievelijk de x- of y-waarden geven van de ingevoerde hoek.
      Geen Afbeelding Geen Afbeelding

  3. Maak twee globale variabelen om tijdelijk de twee punten van de huidige rechthoek op te slaan:
    • huidige hoek 1: om de coördinaten op te slaan van de locatie waar de linker muisknop wordt ingedrukt
    • huidige hoek 2: om de coördinaten op te slaan van waar de linker muisknop weer wordt losgelaten

  4. Maak nu een rechthoek ADT om de twee tegenovergestelde hoeken op te slaan van één rechthoek.

    Geen Afbeelding

    Geen Afbeelding Geen Afbeelding



Net als in het Animatie Studio project van de vorige pagina, moet het tekenveld vaak leeggemaakt en opnieuw getekend worden zodat de gebruiker kan zien hoe iedere nieuwe rechthoek van grootte verandert terwijl hij getekend wordt. Het programma heeft een manier nodig om alle rechthoeken die al getekend zijn op te slaan, zodat ze opnieuw getekend kunnen worden samen met de huidige rechthoek na elke keer leegmaken.


  1. Maak een globale variabele rechthoeklijst om alle rechthoeken die al getekend zijn op te slaan.
  2. Je programma heeft een manier nodig om te weten of de gebruiker klaar is met tekenen. Maak een globale variabele klaar met tekenen? die een Boolean waarde (waar/ onwaar) opslaat om bij te houden in welke fase het programma zit (tekenfase of vulfase).
  3. Het programma heeft ook een manier nodig om een rechthoek te tekenen, met als invoer de twee tegenovergestelde hoeken. Maak een teken rechthoek-blok en test of het correct werkt.

    Geen Afbeelding


  4. Gebruik de zeven blokken en vier variabelen die je gemaakt hebt om een programma te maken dat:
    • herhaaldelijk rechthoeken opslaat tot de gebruiker klaar is met tekenen, door middel van:
      • het opslaan van de coördinaten van de eerste hoek wanneer de gebruiker begint met het tekenen van een rechthoek
      • het opslaan van de coördinaten van de tweede hoek en het opnieuw tekenen van deze rechthoek samen met alle vorige rechthoeken tot de gebruiker stopt met het tekenen van rechthoeken
      • het opslaan van de uiteindelijke coördinaten van iedere rechthoek, zodat de rechthoeken opnieuw getekend kunnen worden
    • een toetsaanslag, zoals de spatiebalk, gebruikt om de computer te laten overschakelen van fase 1. naar fase 2., zodat de aangeklikte gebieden kunnen worden gevuld met kleur.

 
  1. Maak een versie van je Op Art-programma dat veelhoeken gebruikt.

    Geen Afbeelding Geen Afbeelding Geen Afbeelding

  2. Maak een versie van je Op Art-programma dat cirkels gebruikt.

    Geen Afbeelding Geen Afbeelding Geen Afbeelding

  3. Bestudeer het werk van beroemde Op Art-kunstenaars zoals Victor Vasarely en Bridget Riley om een gevoel te krijgen voor wat er allemaal mogelijk is met deze kunstvorm.

    Geen Afbeelding Geen Afbeelding Geen Afbeelding Geen Afbeelding Geen Afbeelding

  4. Het is mogelijk om de vulfase volledig te automatiseren door gebruik te maken van het volgende algoritme:
    • vind voor iedere pixel op het scherm in hoeveel rechthoeken het ligt.
    • maak iedere pixel wit als dit aantal even is en zwart als het oneven is (andersom kan natuurlijk ook).
    Om te begrijpen waarom dit algoritme werkt, kun je het met papier en potlood uitproberen in eenvoudige ontwerpen met weinig overlappende rechthoeken.

    Geen Afbeelding Geen Afbeelding Geen Afbeelding

Terug Volgende