Springen naar inhoud

driehoek op een lijn


  • Log in om te kunnen reageren

#1


  • Gast

Geplaatst op 24 juni 2005 - 14:49

Ik heb hiervoor al een post gehad,
deze om een punt op de schuine zijde van een driehoek te berekenen.
Dit werkt nu perfect, maar het volgende.
Ik wil op dat punt een driehoekje tekenen

Geplaatste afbeelding

hoe begin ik ?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

rodeo.be

    rodeo.be


  • >250 berichten
  • 647 berichten
  • Ervaren gebruiker

Geplaatst op 24 juni 2005 - 16:44

wat bedoel je? Wil je in paint dat driehoekje tekenen? Of wil je de vergelijking van de rechten van dat driehoekje?
???

#3

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 24 juni 2005 - 16:47

Zo te zien heb je het al voor elkaar toch? :shock:

Je moet meer gegegens erbij hebben. Waar moet de driehoek precies aan voldoen?
In theory, there's no difference between theory and practice. In practice, there is.

#4

Revelation

    Revelation


  • >1k berichten
  • 2364 berichten
  • Technicus

Geplaatst op 24 juni 2005 - 16:55

Ah, wil je dit programmeren? Ik heb namelijk een programma in Delphi geschreven dat pijlen kan tekenen.

Kijk maar eens naar dit stuk code:

if BeginPoint.X <> X then

   begin

    if (BeginPoint.X > X) then

     B := DegToRad(135) - ArcTan((BeginPoint.Y - Y) / (BeginPoint.X - X))

    else

     B := DegToRad(45) - ArcTan((BeginPoint.Y - Y) / (BeginPoint.X - X));



    deltaX := 15 * Cos(B);

    deltaY := 15 * Sin(B);



    if (BeginPoint.X > X) then

    begin

     DrawShape(Point(X, Y), Point(X - Trunc(deltaX), Y + Trunc(deltaY)),

      pmCopy);

     DrawShape(Point(X, Y), Point(X + Trunc(deltaY), Y + Trunc(deltaX)),

      pmCopy);

    end

    else

    begin

     DrawShape(Point(X, Y), Point(X - Trunc(deltaX), Y + Trunc(deltaY)),

      pmCopy);

     DrawShape(Point(X, Y), Point(X - Trunc(deltaY), Y - Trunc(deltaX)),

      pmCopy);  

Hier staat mijn redenatie heel mooi. Je moet namelijk goniometrie gebruiken. BeginPoint is een plaats (X, Y) waarvanuit de gebruiker zijn lijn tekent. X en Y zijn de eindcoŲrdinaten.

Hopelijk heb je er wat aan! :shock:
ďQuotation is a serviceable substitute for wit.Ē - Oscar Wilde

#5

Iwerke

    Iwerke


  • >250 berichten
  • 407 berichten
  • Ervaren gebruiker

Geplaatst op 24 juni 2005 - 22:26

van wat hierboven sta snap ik dus geen """""" van he :shock:

maar inderdaad zoals ze zegen heb je veel te weinig gegevens om een specifiek antwoord te geven.

#6

Revelation

    Revelation


  • >1k berichten
  • 2364 berichten
  • Technicus

Geplaatst op 24 juni 2005 - 23:14

Ik heb hier best veel moeite voor gedaan:

Geplaatste afbeelding

Je ziet een hoek alfa (de onderste), die door de tangens te berekenen. Hoek alfa is hetzelfde als hoek a erboven. Om een pijl te maken pak ik een hoek van 45 graden. De andere hoek is sowieso 90 graden. Dus 180-90-45-alfa= hoek bŤta. Om de coŲrdinaten in X en Y te krijgen zeg ik dat de lengte van het pijlstuk 15 is. Dus de X tov. het eindpunt waar de gebruiker de pijl loslaat is 15 * Cos(B). Voor de Y is dit 15 * Sin(B). :shock:

Voor de andere kant draai je het om.
ďQuotation is a serviceable substitute for wit.Ē - Oscar Wilde

#7


  • Gast

Geplaatst op 27 juni 2005 - 08:41

Sorry dat ik nu pas kijk, maar ben van het weekend weg geweest, ik ga de antwoorden even bekijken. Het is inderdaad een stukje dat geprogrammeerd dient te worden. Alvast bedankt, jullie horen het wel als ik er niet uitkom

#8


  • Gast

Geplaatst op 28 juni 2005 - 08:23

Ik kom er niet helemaal uit, ik heb de uitleg van revelation proberen om te zetten naar javascript. misschien kan ziet iemand wat ik fout doe ? hier mij stukje code met wat uitleg

// ik geef mij startX,Y en eindX en Y aan de functie mee

function DrawArrowToTheLeft(startX, startY, endX, endY) {



// ik bekeren de aanliggende en overstaande zijde

  var aanliggende = startX - endX;

  var overstaande = endY - startY;



// dan bereken ik de tanges van hoek alpha

  var tanHoekAlpha = overstaande / aanliggende;



// dan de arc tangens, nu heb ik radians

  var radHoekAlpha = Math.atan(tanHoekAlpha);



// nu heb ik er graden van gemaakt

  var degurHoekAlpha = (radHoekAlpha)*(180/Math.PI);



// even afronden

  var hoekAlpha = Math.round(degurHoekAlpha);



// hier bereken ik hoek beta

  var hoekBeta = 180 - (90 + 45 + hoekAlpha);



// en hier zet ik de x en y waarden waar de pijl punt moet eindigen

  var hpx = Math.round(50 * Math.cos(hoekBeta)) + endX;

  var hpy = Math.round(50 * Math.sin(hoekBeta)) + endY;

}

Ik krijg het niet voor mekaar, ik krijg hele rare lijnen :shock:

#9

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 28 juni 2005 - 09:10

  • var aanliggende = startX - endX; -> var aanliggende = endX - startX;
  • var hpx = Math.round(50 * Math.cos(hoekBeta)) + endX;
    volgens mij moet dit een sinus zijn. Waarom gebruik je 50? en moet de hoek niet in radialen zijn (hoekBeta is in graden)
  • var hpy = Math.round(50 * Math.sin(hoekBeta)) + endY;
    Hetzelfde hier. dit moet volgens mij een cosinus zijn en weer de hoek in radialen.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#10


  • Gast

Geplaatst op 28 juni 2005 - 09:23

laat maar, ik heb het stukje code van revelant in delphi vertaald naar javascript en nu werkt het perfect ! harstikke bedankt allemaal

#11

Revelation

    Revelation


  • >1k berichten
  • 2364 berichten
  • Technicus

Geplaatst op 28 juni 2005 - 16:24

Geen probleem :shock:
ďQuotation is a serviceable substitute for wit.Ē - Oscar Wilde





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures