1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Viereckige bzw. dreieckige Flächen zeichnen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Webster, 13.07.2010.

  1. Webster, 13.07.2010 #1
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    Hi beisammen,

    ich habe eine Klasse (extends View) mit der ich viereckige bzw. dreieckige Flächen zeichnen möchte.
    Leider klappt das nicht so wie ich das möchte.

    Rechtecke ist kein Problem,
    Code:
    canvas.drawRect(...
    aber leider besteht die Welt nicht nur aus Rechtecken ;-)

    Hat jemand ein Tipp für mich, wie ich das lösen könnte?

    Gruß
    Webster
     
  2. Fr4gg0r, 13.07.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Dreicke bekommste mit drawVertices();
    Vierecke, die keine Rechtecke sind, erhälst du indem du 2 Dreiecke zeichnest.
    Sonst natürlich noch drawCircle, und drawArc für Halbkreise.
    Siehe http://developer.android.com/reference/android/graphics/Canvas.html
    Wenn du ein konkretes Problem hast, so musst du dieses auch schon schildern. ;)
     
    Zuletzt bearbeitet: 13.07.2010
  3. Webster, 13.07.2010 #3
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    Ich habe mich an drawVertices probiert, aber irgendwie bekam ich kein Fehler, es wurde aber auch nichts gezeichnet...

    Ich schau mir die Funktion bei Gelegenheit noch mal genau an.
     
    Zuletzt bearbeitet: 13.07.2010
  4. Fr4gg0r, 13.07.2010 #4
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Ja, drawVertices ist zuerst etwas tricky.
    Um ein einfaches weißes Dreieck zu zeichnen:
    - Canvas.VertexeMode.TRIANGLE
    - 6 (anzahl der koordinaten)
    - new float[]{50, 0, 20, 30, 80, 50} jeweils x/y eines Punktes
    - 0 = kein offset = keine position auslassen
    - null = wir wollen keine Textur
    - 0 = wieder kein offset
    - new int[]{Color.WHITE, Color.WHITE, ... 6x} = Farbe für jeden Punkt doppelt
    - 0 = kein colorOffset
    - 0
    - 0
    - ein Paint (evtl. kann auch null übergeben werden, musst du ausprobieren)
     
    Webster bedankt sich.
  5. Zonnex, 13.07.2010 #5
    Zonnex

    Zonnex Fortgeschrittenes Mitglied

    Beiträge:
    431
    Erhaltene Danke:
    49
    Registriert seit:
    12.09.2009
    Path kann alle Formen zeichnen die du ihm "einhämmerst", in dem Beispiel jetz nen Dreieck:

    Code:
    meinPath = new Path();
    meinPath.moveTo(50,50);
    meinPath.lineTo(70,60);
    meinPath.lineTo(70,40);
    meinPath.close();
    meincanvas.drawPath(meinPath, meinPaint);
    
    ;)

    Mfg
    Oli
     
    Webster bedankt sich.
  6. Webster, 13.07.2010 #6
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    Dank euch beiden. Das werde ich Morgen gleich austesten.
     
  7. Webster, 14.07.2010 #7
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    Ihr seid die Helden für mich =)
    Mit Path funktioniert es genau so wie ich es will.
    Jetzt habe ich endlich Flächendiagramme. Yeeeha

    Danke nochmal!
     

Diese Seite empfehlen