Kezdőoldal » Közoktatás, tanfolyamok » Házifeladat kérdések » Hogyan kell ezt kiszámolni?

Hogyan kell ezt kiszámolni?

Figyelt kérdés

Számítógépes grafika a feladat.

Van 2 koordináta.

Erre kell egy algoritmussal kirajzolni egy egyenest.

Oké, erre ott van a DDA.

De most kaptam egy olyan feladatot, hogy mondjuk 4-5-6-x színt is kapok és ilyen színűnek kellene lennie az egyenesnek.

Tehát kapok 3 színt, mondjuk piros, zöld, fekete, akkor 1/3 piros, 1/3 zöld, 1/3 fekete.

Ha 4 szín, akkor szintén arányosan kell megosztani.

Na most ha megvan a 2 koordináta, hogy tudom kiszámolni hol vannak a határok?

Tegyük fel, a koordináta a következő:

p0 = (1,5)

p1 = (10, 2)

Ezt berajzolom, de honnan fogom tudni a n-1 határt?


2023. nov. 5. 15:24
 1/8 A kérdező kommentje:

Egy olyan megoládson gondolkodom, hogy veszem a p0 és a p1 x koordinátát és kivonom őket, majd azt elosztom a színek számával és akkor mindig addig növelem, amit kaptam számot.

Tehát, fenti esetben a 9et osztom 4 helyett 3-mal, mert az jobban kiadja:).

Akkor lesz egy határ 4-nél és 7-nél.

Akkor ugyan ezt megcsinálom a másiknál is, hogy 8 osztva 3-mal az 2,7 nagyjából. és ha ezeket eléri, akkor...

2023. nov. 5. 15:32
 2/8 A kérdező kommentje:
Na, most felrajzoltam és nem is kell csak az x koorináta.
2023. nov. 5. 15:34
 3/8 A kérdező kommentje:
Nem jó, csak az x koordináta, mert ha a a két x koordináta azonos, akkor nem ismeri fel, hogy egy függőleges vonal és nem tudja mi alapján kirajzolni.
2023. nov. 5. 15:38
 4/8 anonim ***** válasza:
Egyenes vagy szakasz? Nyilván szakasz
2023. nov. 5. 15:42
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

a chat gpt ezt mondja:



Itt van egy példában bemutatott algoritmus, amely segít felosztani a két pont közötti szakaszt négy egyenlő részre:


Határozza meg az első pontet (P1) és a második pontot (P2) a következő koordinátapárok segítségével:


P1(x1, y1)

P2(x2, y2)


Számolja ki a teljes szakasz hosszát (d) a két pont között a távolságképlet segítségével:


d = √((x2 - x1)² + (y2 - y1)²)


Számolja ki egy rész hosszát (dl), ami a teljes szakasz hosszának negyede:


dl = d / 4


Határozza meg az első rész végpontját (P1') az eredeti pont P1 alapján:


P1'(x1', y1') = (x1 + dl * (x2 - x1) / d, y1 + dl * (y2 - y1) / d)


Számolja ki a második rész végpontját (P2') az első rész végpontjából (P1'):


P2'(x2', y2') = (x1' + dl * (x2 - x1) / d, y1' + dl * (y2 - y1) / d)


Ismételje meg ezt a lépést még kétszer a következő részeken:


Az előző rész végpontjából a következő rész végpontjának számolása.

Ezzel az algoritmussal a szakaszt négy egyenlő részre osztja, és meghatározza az összes rész végpontját. A kimenet egy sorozat lesz a négy rész végpontjaival, amelyek az eredeti szakaszt négy egyenlő részre osztják.

2023. nov. 5. 15:45
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

szerintem ez jó

bár nem ellenőriztem végig

2023. nov. 5. 15:47
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
74%

A ChatGPD-s válasz egyépként jó, kérdés, hogy mennyire érted meg.


Egy másik megoldás;


-A tanult módon kiszámolod a vektort (mindegy, hogy melyikből melyikbe mutat).

-Ezután a vektrot elosztod annyival, ahány szakaszt akarsz kapni. Ha 4-et, akkor 4-gyel, ha 10-et, akkor 10-zel. Szerencsére az osztás ilyen esetben is úgy megy, hogy a vektor koordinátáit elosztjuk az adott számmal.

-Innentől csak annyi a dolgod, hogy a vektor koordinátáit hozzáadod a KEZDŐPONT koordinátáihoz, ezzel megklapod az első osztási pontot. Aztán hozzáadod a következőhöz, ezzel megkapod a másodikat. Ezt addig csinálod, amíg nem jutsz el a VÉGPONTIG.


Vegyük a példádat, és osszik fel 5 egyenlő részre:


-Először felírjuk a p0p1 vektort: (9;-3).

-Ezt a vektort elosztjuk 5-tel: (9;-3)/5, ami azt jelenti, hogy koordinátánként lehet osztani: (1,8 ; -0,6) (most szerencsénk van, mert értelmesen lehet osztani a számokat egymással, így a tizedestörtben megadott eredmény pontos).

-Ha ez is megvan, akkor köhetnek az osztási pontok; mivel p0p1 vektorral számoltunk, ezért p0 (1;5) a KEZDŐPONT, tehát ehhez adjuk hozzá az osztással kapott vektor koordinátáit;


1. osztási pont: ( 1+1,8 ; 5+(-0,6) ) = ( 2,8 ; 4,4 )

2. osztási pont: ( 2,8+1,8 ; 4,4+(-0,6) ) = ( 4,6 ; 3,8 )

3. osztási pont: ( 4,6+1,8 ; 3,8+(-0,6) ) = ( 6,4 ; 3,2 )

4. osztási pont: ( 6,4+1,8 ; 3,2+(-0,6) ) = ( 8,2 ; 2,6 )


Ezzel megvan a 4 osztási pont, ami 5 egyenlő részre oszt. Ellenőrzésként az utolsó osztási ponthoz ha hozzáadjuk a vektor koordinátáit, akkor p1-et kell kapnunk:


( 8,2+1,8 ; 2,6+(-0,6) ) = ( 10 ; 2 ), ez valóban a p1 pont, tehát mindent jól csináltunk.


A ChatGPT-s válasszal szemben ez azért jobb megoldás, mert nem kell a hosszok kiszámításával bajlódni, egyszerűen csak a négy alapművelettel megoldható a feladat.

2023. nov. 5. 16:29
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:
Köszi.
2023. nov. 6. 09:06

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!