| |
|
|
p.specht
| Das nachstehende Progrämmchen se el Umgang con Pie, Arc y Chord-Befehlen algo logischer hacer. Das Ejemplo en el Profano-Ayuda berücksichtigt z.B. no el gekippte Perspektive en Tortendiagrammen. Im nachstehenden Machwerk se genau dafür Sorge getragen, daß el (z.B. Anteils-abhängigen) Winkel stets el angewendeten Perspektive (aka. "Kavalier-Riss") adaptado verlaufen. Angenehmer Nebeneffekt: El Tortenstück-Páginas laufen nun auch en muy breiten, aber sólo wenig hohen Diagrammen stets para Mauscursor hin, qué una manuelle Eingabe enorm erleichtert.
P.S.: Daß lo todavía wahnsinnig viel a wünschen encima lässt, etwa Farb-, Füll- y Formänderungen, Beschriftungen u.v.a.m., es klar. Aber immerhin, una erste lästige (Formel-)Hürde es nun geschafft. Für wirklich gute Tortendiagramme hay gute Incluir- y PCU-Files en diesem Board!
Título de la ventana "SIMPLER PIE-ARC-CHORD-TRAINER":Ventana de Estilo 24:Ventana 0,0 - %maxx,%maxy
'(CL) CopyLeft 2014-11 by P.Pájaro carpintero, Wien. Ohne jedwede Gewähr!
imprimir "\n Bedienung (Bitte no Hochstelltaste uso!):"
imprimir "\n 1. Ratón en *linke obere* Ecke des Darstellundrechtecks, 'M'-Taste para 'MERKEN'"
imprimir "\n 2. Ratón en rechte untere Ecke des Darstellundrechtecks, 'R'-Taste para 'RECHTECK'"
imprimir "\n Lo se el Mitte des Tortenstücks abgezeigt, porque esta nun feststeht."
imprimir "\n 3. Winkellinie Ratón Mittelpunkt son Startwinkel: 'V'-Taste para 'VON'"
imprimir "\n 4. Winkellinie Ratón Mittelpunkt son Stop-winkel: 'B'-Taste para 'BIS'"
imprimir "\n Tortenstück se suscrito."
imprimir "\n 5. 'C' para 'CLS' = Claro Screen"
imprimir "\n Viel Spass beim üben!\n"
var xh&=width(%hwnd):var yh&=height(%hwnd)
declarar LOX&,LOY&,LUX&,LUY&,SX&,SY&,EX&,EY&,StartAngle!,StopAngle!,Kippwinkel!
Repeat
waitinput
caso %key=27:end
'imprimir %key
if %key=109
imprimir "M";
LOX&=%mousex:LOY&=%mousey
endif
if %key=114
imprimir "R";
usepen 0,2,rgb(0,255,0)
LUX&=%mousex:LUY&=%mousey
rectangle LOX&,LOY& - LUX&,LUY&
usepen 0,5,rgb(255,0,0)
moveto (Lox&+lux&)\2,(Loy&+luy&)\2
lineto (Lox&+lux&)\2+1,(Loy&+luy&)\2
endif
if %key=118
imprimir "V";
SX&=%mousex:SY&=%mousey
endif
if %key=98
imprimir "B";
EX&=%mousex:EY&=%mousey
usebrush 0,rgb(0,0,255)
usepen 0,5,rgb(255,0,0)
Kippwinkel! = arctan4( LUy&-LOy&, LUx&-LOx& )
StartAngle! = arctan4( Sx&-(LUx&+LOx&)/2 , (LUy&+LOy&)/2-Sy& )
StopAngle! = arctan4( Ex&-(LUx&+LOx&)/2 , (LUy&+LOy&)/2-Ey& )
' Gilt para Pie, Arc y Chord:
PIE LOX&,LOY& - LUX&,LUY&;\
(LUx&+LOx&+(LUx&-LOx&)*Cos(-StartAngle!)*cos(Kippwinkel!) )/2,\
(LUy&+LOy&+(LUy&-LOy&)*Sin(-StartAngle!)*sin(Kippwinkel!))/2;\
(LUx&+LOx&+(LUx&-LOx&)*Cos(-StopAngle!)*cos(Kippwinkel!))/2,\
(LUy&+LOy&+(LUy&-LOy&)*Sin(-StopAngle!)*sin(Kippwinkel!))/2
endif
caso %key=99:cls
until 0
proc ArcTan4 :parámetros x!,y!
var pi!=3.1415926535897932:var w!=0'(CL)2014-01 P.Pájaro carpintero§gmx.at
if x!=0:if y!>0:w!=pi!*0.5:elseif y!<0:w!=pi!*1.5:más :w!=0:endif :volver w!:elseif x!>0
if y!=0:w!=0:volver w!:elseif y!>0:if x!>y!:w!=arctan(y!/x!):más :w!=pi!/2-arctan(x!/y!):endif
volver w!:más :if x!<-y!:w!=pi!*1.5+arctan(x!/-y!):más :w!=2*pi!-arctan(-y!/x!):endif :volver w!
endif :más :if y!>0:if x!>-y!:w!=pi!/2+arctan(-x!/y!):volver w!:más :w!=pi!-arctan(y!/-x!)
volver w!:endif :elseif y!<0:if x!<y!:w!=pi!+arctan(-y!/-x!):más :w!=pi!*1.5-arctan(-x!/-y!)
endif :volver w!:más :w!=pi!:volver w!:endif :endif :Imprimir " ArcTan4 ERROR":waitinput:waitinput
ENDPROC
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 16.05.2021 ▲ |
|
|
|