PHP-GD kör és vonal nem érintkezik
Sziasztok!!!
Gömb vissza tükrözést kell csinálnom fizzikára és az a baj hogy van benne
hiba:(
Tudnivalók:
Bekérünk 3 dolgot.
$sugar = kör sugára.
$t = Külsö kör ivtöl való távolság.
$T = $t magassága.
itt a kód:
Na halodtam olyanról hogy elinditunk egy ciklus és amikor egy másik szinhez ér a vonal akkor megálitja a ciklust.
■ Gömb vissza tükrözést kell csinálnom fizzikára és az a baj hogy van benne
hiba:(
Tudnivalók:
Bekérünk 3 dolgot.
$sugar = kör sugára.
$t = Külsö kör ivtöl való távolság.
$T = $t magassága.
itt a kód:
<?php
header("Content-type: image/gif");
$sugar = $_GET['sugar'];
$t = $_GET['koron_kivuli_hosszusag'];
$T = $_GET['koron_kivuli_magassag'];
$belso_kor_hosszusag = $sugar/2;
$F = 400+$sugar/4;
$t2=400+$sugar/2;
$t3 =$t2+$t;
$T2 = $T;
$kep = imagecreate( 1200, 800 );
$hatter = imagecolorallocate($kep, 255,255,255);
$fekete = imagecolorallocate($kep, 0,0,0 );
$a_kor_sugar = imageline( $kep, 400-1, 500-1, 400-1+$belso_kor_hosszusag, 500-1, $fekete );
$a_kor = imagefilledarc( $kep, 400-1, 500-1, $sugar-1, $sugar-1, 0, 360 , $fekete,IMG_ARC_NOFILL);
$a_kor_F_resze = imageline( $kep, $F-1, 480-1, $F-1 ,520-1, $fekete );
$a_t_középsö = imageline( $kep, $t2-1, 500-1, $t3-1 ,500-1, $fekete );
$a_t_felsö= imageline( $kep, $t3-1, 500-1-$T2/2, $t2-1 ,500-1-$T2/2, $fekete );
$a_T = imageline( $kep, $t3-1, 500-1-$T2/2, $t3-1 ,500-1, $fekete );
$a_kor_Q_tol_T_tetejeig = imageline( $kep, $t2-1, 500-1, $t3-1 ,500-1-$T2/2, $fekete );
$a_2_lenti = imageline( $kep, $t2-1, 500-1, $t3-1 ,500-1+$T2, $fekete );
$a_2_fenti = imageline( $kep, $t2-1, 500-1-$T2/2, $t3-1,500-1-$T2-$T2/2, $fekete );
$a_1_ball = imageline( $kep, $F-1, 500-1, $t3-$t-1 ,500-1-$T2/2, $fekete );
$a_1_jobb = imageline( $kep, $t2-1, 500-1, $F-1,500-1-$T2/2, $fekete );
imagegif($kep);
?>
Na halodtam olyanról hogy elinditunk egy ciklus és amikor egy másik szinhez ér a vonal akkor megálitja a ciklust.
Szögfüggvények
Természetesen nézheted a színeked, de ahhoz legjobb tudomásom szerint saját magadnak kell megírni a vonalat húzó algoritmust és pixelenként kirajzolni.
Nem egyértelmű hogy mi is a
és a színes megoldást
Színes megoldás nem lenne rossz de hogy csináljam??:(
De mi a feladat?
A képen látható piros
A t_felsö-t hosszuságát addig kéne növelni amig nem érintkezik a körrel.
Még mindig kevés
$a_2_fenti
például micsoda? És mi az összes többi?$a_2_fenti a vissza verödés:D
de az most sztem nem lénnyeg csak annyi kell hogy a $a_2_fenti alati vonal a körhöz érjen a többi menni fog:D
Pont ez lenne a lényeg...
$a_t_felsöt szeretném meg
picit bőbeszédűbben?
Vagyis az $_a_t_felsö-t vízszintesen képzeled meghosszabbítani, vagy oda kéne érjen ahova az $_1_ball? mert nem mindegy..
Illetve mi lenne megrajzolnád hogy mit szeretnél kapni, amin bónuszként jelölnéd a tudott szögeket, és belinkelnéd ide? nem rosszból mondom.. hamarabb kapnál választ..
$a_t_felsöt szeretném
kör egyenlete
Na most van egy ilyen képlet:
(x-u)^2 + (y-v)^2 = r^2
link
Ebből tudod a kör középpontját, a sugarat, és a P (metszéspont) y koordinátáját (500-1-$T2/2). ergó ki kell tud fejezni az x-et (ami az imageline második paramétere lesz)
az a baj hogy a képletbe
Elolvastad?
sajna ezt nem tom meg
nem ellenőriztem le de
(x-u)^2 + (y-v)^2 = r^2
x=?
y=499-$T2/2
u=399
v=499
r=$sugar-1
(x-399)^2 + (499-$T2/2-499)^2 = ($sugar-1)^2
(x-399)^2 = ($sugar-1)^2 - (499-$T2/2-499)^2
(egyszerűsítsd ha akarod)
de ebben a formában a további teendőd: számoltasd ki az egyenlet jobb oldalát, abból vonj gyököt, majd adj hozzá 399-et és megkapod az x-et
szerintem ezt hagyom:( sztem
sztem azt csinálom hogy addig növelem viszintesen a vonalat amig egy másikhoznem ér de ezt hogy tom?? ez sztem egyszerübb
példakód
szerkesztve:
Azért nem a te kódodba írtam bele, mert összevissza használod a változóneveket.. például $sugar nálad a kör szélessége...
így a fenti képlet se helyes!
ezt ki proszálom ha sikerül
A piros vonal az. (régi képet szerkesztedtem)
Lassan 1 hete küszködöm vele:(
új téma
Továbbá most lehetőleg ne kelljen bokszolni veled azért hogy elmond hogy mi a fenét szeretnél kiszámolni..
rendben:D