16. oktober 2005 - 19:22Der er
58 kommentarer og 1 løsning
Hvordan beregner jeg dette punkt ?
Hej eksperter...
jeg har et program der skal tegne en trekant.
Jeg har punktet (x,y) og (x-a, y) og nu ved jeg så ikke helt hvordan jeg beregner det sidste punkt det blå punkt på denne tegning: www.faarup.1go.dk/trekant.jpg
Nogen der kan hjælpe mig med at beregne koordinaterne på dette punkt ?
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { double a = 400; double B = 60; double c = 400;
Graphics g = e.Graphics; Pen p = new Pen( Color.Black, 1 );
Point pt1 = new Point( 500, 300 ); Point pt2 = new Point( (int)(500 - a), 300 ); Point pt3 = new Point( (int)(500 - a + Math.Cos(B) * c), (int)(300 - Math.Sin(B) * c) );
det tror jeg at den skal for den ser rimelig god ud nu :
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { double a = 400; double B = 60*Math.PI/180; // Vinkel i radianer ! double c = 400;
Graphics g = e.Graphics; Pen p = new Pen( Color.Black, 1 );
Point pt1 = new Point( 500, 300 ); Point pt2 = new Point( (int)(500 - a), 300 ); Point pt3 = new Point( (int)(500 - a + Math.Cos(B) * c), (int)(300 - Math.Sin(B) * c) );
jeg har lavet en knap der hedder tegn trekant, hvor trekanten så bliver tegnet i en ny form. hvordan "overfører" man så sine data-typer (a, b, c, A, B, C) til den nye form ?
ok den skal jeg lige have igen...jeg er ikke så god til de der navne som constructor osv.. med en lille smule kode (bare 1 eksempel på fx a) så ville jeg have det lidt nemmere !
public class Form2 { private int a; public Form2(int a) { this.a = a; } private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { // brug a } }
private void Trekant_Paint(object sender, PaintEventArgs e) { a = a * 30; // fra cm til px c = c * 30; // fra cm til px B = (int)(B * Math.PI / 180); //fra grader til radianer
Graphics g = e.Graphics; Pen p = new Pen(Color.Black, 1);
Point pt1 = new Point(500, 500); Point pt2 = new Point((int)(500 - a), 500); Point pt3 = new Point((int)(500 - a + Math.Cos(B) * c), (int)(500 - Math.Sin(B) * c));
jeg ved hvad der er galt...det er fordi at når den får det til et kommatil skriver den fx 33,999999999 og så TROR jeg at den opfatter det som 33999999999 hvilket er et lidt for stor tal til en integer ! har du nogle idéer til hvordan jeg løser dette problem ??
tak jeg prøver i morgen...ellers opretter jeg et nyt spg...mange tak for svarene !
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.