Diskuze: C# vykreslenie úsečky pomocou smernice

C# .NET .NET (C# a Visual Basic) C# vykreslenie úsečky pomocou smernice American English version English version

Avatar
Patrik141414
Člen
Avatar
Patrik141414:

Ahojte, v škole som dostal zadanie z poč. grafiky, ktoré má v karteziánskom pravotočivom s.s. zobraziť úsečku voliteľnej dĺžky prechádzajúcu začiatkom a definovanú smernicou. Problém je, že úsečku viem vykreslovať len pomocou zač. a koncových bodov, príklad môjho kódu:

public partial class Form1 : Form
    {
        Graphics graf;
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {

            Pen drawpen = new Pen(Color.Red, 2);
            pictureBox1.Refresh();
            graf = pictureBox1.CreateGraphics();
            SolidBrush ste = new SolidBrush(Color.Black);

            try
            {
                graf.TranslateTransform(Convert.ToInt32(textBox3.Text), Convert.ToInt32(textBox4.Text));
                graf.FillRectangle(ste, 0, 0, 4, 4);
                var konx = Convert.ToInt32(textBox2.Text);
                var kony = Convert.ToInt32(textBox1.Text);

                graf.DrawLine(drawpen, 0, 0, konx, kony);

            }
            catch(FormatException exp)
            {
                MessageBox.Show("Zadali ste zlý formát");
            }
            graf.Dispose();
        }

    }

Vedel by mi s tým niekto pomôcť? ďakujem

 
Odpovědět 30. dubna 16:43
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na Patrik141414
Lukas C#:

Stačilo se podívat na wiki - tam je rovnice směrnice přímky Y = K*X + Q. Protože chceš, aby přímka šla počátkem, tak Q bude 0 (takže ho s tama vynecháš). Píše se, že libovolné délky, takže si zvolíš libovolný bod X (podle toho, jak máš velký formulář), a s pomocí Y = K*X (kde K je tedy ta směrnice) dopočítaš druhý koncový bod. Čili X1 = 0, Y1 = 0, X2 = zvolíš si, Y2 = vypočítáš.

 
Nahoru Odpovědět 30. dubna 17:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.