Hogyan kell ezt kiszámolni?
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?
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...










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.





szerintem ez jó
bár nem ellenőriztem végig





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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!