Ja wir werden mal demnächst durchfegen ![]()
Beiträge von minx
-
-
Eukalyptus hat da ein paar Funktionen schon umgesetzt

Spoiler anzeigen
[autoit]Func _HPDF_Page_SetRotate($hPage, $iAngle)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetRotate", "ptr", $hPage, "uint", $iAngle)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetRotateFunc _HPDF_Page_Concat($hPage, $a, $b, $c, $d, $X, $Y)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_Concat", "ptr", $hPage, "float", $a, "float", $b, "float", $c, "float", $d, "float", $X, "float", $Y)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_ConcatFunc _HPDF_SetPageMode($hPage, $iMode)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_SetPageMode", "ptr", $hPage, "dword", $iMode)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_SetPageModeFunc _HPDF_Page_Stroke($hPage)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_Stroke", "ptr", $hPage)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_StrokeFunc _HPDF_Page_SetRGBStroke($hPage, $nRed, $nGreen, $nBlue)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetRGBStroke", "ptr", $hPage, "float", $nRed, "float", $nGreen, "float", $nBlue)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetRGBStrokeFunc _HPDF_Page_Fill($hPage)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_Fill", "ptr", $hPage)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_FillFunc _HPDF_Page_SetRGBFill($hPage, $nRed, $nGreen, $nBlue)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetRGBFill", "ptr", $hPage, "float", $nRed, "float", $nGreen, "float", $nBlue)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetRGBFillFunc _HPDF_Page_MoveTo($hPage, $nX, $nY)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_MoveTo", "ptr", $hPage, "float", $nX, "float", $nY)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_MoveToFunc _HPDF_Page_LineTo($hPage, $nX, $nY)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_LineTo", "ptr", $hPage, "float", $nX, "float", $nY)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_LineToFunc _HPDF_Page_SetLineWidth($hPage, $nW)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetLineWidth", "ptr", $hPage, "float", $nW)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetLineWidthFunc _HPDF_Page_Rectangle($hPage, $nX, $nY, $nW, $nH)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_Rectangle", "ptr", $hPage, "float", $nX, "float", $nY, "float", $nW, "float", $nH)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_RectangleFunc _HPDF_Page_Circle($hPage, $nX, $nY, $nRadius)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_Circle", "ptr", $hPage, "float", $nX, "float", $nY, "float", $nRadius)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_CircleFunc _HPDF_Page_SetWidth($hPage, $nWidth)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetWidth", "ptr", $hPage, "float", $nWidth)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetWidthFunc _HPDF_Page_SetHeight($hPage, $nHeight)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetHeight", "ptr", $hPage, "float", $nHeight)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetHeightFunc _HPDF_Page_SetSize($hPage, $iSize, $iDirection)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Page_SetSize", "ptr", $hPage, "dword", $iSize, "dword", $iDirection)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_Page_SetSizeFunc _HPDF_Free($hPdf)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_Free", "ptr", $hPdf)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_FreeFunc _HPDF_AddPage($hPdf)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_AddPage", "ptr", $hPdf)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_AddPageFunc _HPDF_SaveToFile($hPdf, $sFilename)
[/autoit] [autoit][/autoit] [autoit]
Local $aReturn
$aReturn = DllCall($libhpdfdll, "int", "HPDF_SaveToFile", "ptr", $hPdf, "str", $sFilename)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_SaveToFileFunc _HPDF_New()
[/autoit]
Local $aReturn
Local $error_handler = DllStructCreate("ulong error_no;ulong detail_no;ptr* user_data")
$aReturn = DllCall($libhpdfdll, "int", "HPDF_New", "ptr", $error_handler, "ptr", 0)
If @error Then Return SetError(@error, @extended, 0)
Return $aReturn[0]
EndFunc ;==>_HPDF_New -
-
Auswertung ist da.
-
Immernoch: Lies die Hilfe.
Dir fehlt:
[autoit]#include <String.au3>
[/autoit] -
Meinte ich doch auch

Die wirklich besten Docs zu 3D gibts hier: http://www.petesqbsite.com/sections/tutor…raphics.shtml#5
Vor allem Why divide by Z? für die Perspektive

-
Hier, mit der Z+-Formel lässt sich ganz einfach perspektivisch darstellen. Dabei wird ein Kamerapunkt definiert, der ebenfalls frei beweglich im Raum ist. Dazu eine UDF, die sich leicht auf GDI+ umbauen lässt. Das einzige was fehlt ist Z-Odering für Backface-Culling

Spoiler anzeigen
[autoit]#include <Main.au3>
[/autoit] [autoit][/autoit] [autoit]Local $n
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
const $PI = 3.1415926535897;
const $space = 20;
const $VertexCount = (90 / $space) * (360 / $space) * 4;
Local $R = 15, $H = 7, $K = 3, $ZLocal $hGraphics = alStartup("Test",800,600)
[/autoit] [autoit][/autoit] [autoit]
Local $Cam = alCamera(10,50,100)Local $Model = 0
[/autoit] [autoit][/autoit] [autoit]If $Model = 0 Then Cube()
[/autoit] [autoit][/autoit] [autoit]
If $Model = 1 Then Cyl_Point()
If $Model = 2 Then Cyl_Line()
If $Model = 3 Then Quads()Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg()=-3Func Quads()
[/autoit] [autoit][/autoit] [autoit]
alQuad($hGraphics, $Cam, -15, -15, 15, 15, -15, 15, 15, 15, 15, -15, 15, 15); Backface
alQuad($hGraphics, $Cam, 15, -15, -15, 15, -15, 15, 15, 15, 15, 15, 15, -15); Right
alQuad($hGraphics, $Cam, -15, -15, -15, -15, -15, 15, -15, 15, 15, -15, 15, -15); Left
alQuad($hGraphics, $Cam, -15, -15, -15, 15, -15, -15, 15, 15, -15, -15, 15, -15); Frontface
EndFuncFunc Cyl_Point()
[/autoit] [autoit][/autoit] [autoit]
alAxis($hGraphics,$Cam)
For $i=0 To 30
Local $theta = (2*$PI*$i)/(30-1), $x = Sin($theta)*10, $y = -10, $z = Cos($theta)*10
alPoint($hGraphics, $Cam, $x, $y, $z)
alPoint($hGraphics, $Cam, $x, -$y, $z)
Next
EndFuncFunc Cyl_Line()
[/autoit] [autoit][/autoit] [autoit]
alAxis($hGraphics,$Cam)
For $i=0 To 30
Local $theta = (2*$PI*$i)/(30-1), $x = Sin($theta)*10, $y = -10, $z = Cos($theta)*10
alLine($hGraphics, $Cam, $x, $y, $z, $x, -$y, $z)
Next
EndFuncFunc Cube()
[/autoit] [autoit][/autoit] [autoit]
alAxis($hGraphics,$Cam)
alLine($hGraphics, $Cam, -15, -15, 15, 15, -15, 15)
alLine($hGraphics, $Cam, -15, 15, 15, 15, 15, 15)
alLine($hGraphics, $Cam, -15, -15, -15, 15, -15, -15)
alLine($hGraphics, $Cam, -15, 15, -15, 15, 15, -15)
alLine($hGraphics, $Cam, -15, -15, 15, -15, -15, -15)
alLine($hGraphics, $Cam, -15, 15, 15, -15, 15, -15)
alLine($hGraphics, $Cam, 15, -15, 15, 15, -15, -15)
alLine($hGraphics, $Cam, 15, 15, 15, 15, 15, -15)
alLine($hGraphics, $Cam, -15, -15, -15, -15, 15, -15)
alLine($hGraphics, $Cam, -15, -15, 15, -15, 15, 15)
alLine($hGraphics, $Cam, 15, -15, -15, 15, 15, -15)
alLine($hGraphics, $Cam, 15, -15, 15, 15, 15, 15)
EndFuncFunc alStartup($Title,$Width,$Height,$Left=-1,$Top=-1)
[/autoit] [autoit][/autoit] [autoit]
Dim $Return[4]=[GUICreate($Title,$Width,$Height,$Left,$Top,Default,34078728),GUICtrlCreateGraphic(0,0,$Width,$Height),$Width,$Height]
GUISetState()
Return $Return
EndFuncFunc alCamera($x=1,$y=1,$z=100)
[/autoit] [autoit][/autoit] [autoit]
Dim $Cam[3]=[$x,$y,$z]
Return $Cam
EndFuncFunc alAxis($hWnd,$Cam)
[/autoit] [autoit][/autoit] [autoit]
alLine($hWnd,$Cam,-50,0,0,50,0,0)
alLine($hWnd,$Cam,0,-50,0,0,50,0)
alLine($hWnd,$Cam,0,0,-50,0,0,M(50,$Cam[2]-.1))
EndFuncFunc alLine($hWnd,$Cam,$x,$y,$z,$xx,$yy,$zz)
[/autoit] [autoit][/autoit] [autoit]
$Coord1=C($Cam,-$x,$y,-$z,$hWnd[2],$hWnd[3])
$Coord2=C($Cam,-$xx,$yy,-$zz,$hWnd[2],$hWnd[3])
GUICtrlSetGraphic($hWnd[1],6,$Coord1[0],$Coord1[1])
GUICtrlSetGraphic($hWnd[1],2,$Coord2[0],$Coord2[1])
GUICtrlSetGraphic($hWnd[1],22)
EndFuncFunc alPoint($hWnd,$Cam,$x,$y,$z)
[/autoit] [autoit][/autoit] [autoit]
$Coord1=C($Cam,-$x,$y,-$z,$hWnd[2],$hWnd[3])
GUICtrlSetGraphic($hWnd[1],18,$Coord1[0],$Coord1[1])
GUICtrlSetGraphic($hWnd[1],22)
EndFuncFunc alQuad($hWnd, $Cam, $x, $y, $z, $x1, $y1, $z1, $x2, $y2, $z2, $x3, $y3, $z3)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetGraphic($hWnd[1], 24, 1)
GUICtrlSetGraphic($hWnd[1], 8, 0xFFFFFF, Random(0,0xFFFFFF))
$Coord1=C($Cam,-$x,$y,-$z,$hWnd[2],$hWnd[3])
$Coord2=C($Cam,-$x1,$y1,-$z1,$hWnd[2],$hWnd[3])
$Coord3=C($Cam,-$x2,$y2,-$z2,$hWnd[2],$hWnd[3])
$Coord4=C($Cam,-$x3,$y3,-$z3,$hWnd[2],$hWnd[3])
GUICtrlSetGraphic($hWnd[1],6,$Coord1[0],$Coord1[1])
GUICtrlSetGraphic($hWnd[1],2,$Coord2[0],$Coord2[1])
GUICtrlSetGraphic($hWnd[1],2,$Coord3[0],$Coord3[1])
GUICtrlSetGraphic($hWnd[1],2,$Coord4[0],$Coord4[1])
GUICtrlSetGraphic($hWnd[1],22)
GUICtrlSetGraphic($hWnd[1], 24, 1)
GUICtrlSetGraphic($hWnd[1], 8, 0x000000, -2)
EndFuncFunc C($Cam,$x,$y,$z,$w,$h)
[/autoit]
If $z<$Cam[2] then
Dim $return[3]=[(.5*$w*($x-$Cam[0])/($z-$Cam[2]))+.5*$h,(.5*$h*($y-$Cam[1])/($z-$Cam[2]))+.5*$h,0]
Else
Dim $return[3]=[0,0,-10000]
EndIf
Return $return
EndFunc -
OBJ sollte ähnlich sein. Gut wäre ein switch zwischen Isometrischer (Axiometrischer) und Paralleler Darstellung. Sonst sehr schön

-
Wenn du das PDF aus dem Internet hat, speichere es einfach mit InetGet().
-
Zitat von James1337
Das Problem ist, dass bei Q(30) der Rekursionslevel selbst auch so ungefähr bei 30 liegt, also noch sehr niedrig. Daraus folgt, dass man wahrscheinlich mehrere Stunden auf das Ergebnis warten könnte, nur um dann einen Rekursionsfehler zu erhalten...
HA! Mit rekursiven Arrays statt Funktionen kann man blitzschnell eine Zuordnungstabelle errechnen. Nicht mal ne Sekunde und alles ist fertig ^^. Für 100.000 Ergebnisse!
Spoiler anzeigen
[autoit]main()
[/autoit] [autoit][/autoit] [autoit]Func main()
[/autoit] [autoit][/autoit] [autoit]
Local $hofstadters[100000]
$hofstadters[0] = 1
$hofstadters[1] = 1
For $i = 3 To 99999
$hofstadters[$i-1] = $hofstadters[$i-1-$hofstadters[$i-1-1]]+$hofstadters[$i-1-$hofstadters[$i-2-1]]
NextConsoleWrite("!> The first 10 numbers are:"&@LF)
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 9
ConsoleWrite($hofstadters[$i] & " ")
Next
ConsoleWrite(@LF & "!> The 1000'th term is " & $hofstadters[999] & @LF)Local $less_than_preceding = 0
[/autoit]
For $i = 0 To 99998
If $hofstadters[$i+1] < $hofstadters[$i] Then $less_than_preceding += 1
Next
ConsoleWrite("!> " & $less_than_preceding & " times a number was preceded by a greater number!" & @LF)
Return 0
EndFunc -
Muss man nicht vergessen. Lassen sich 1:1 in Arrays umformen. Ob aus C++ oder VB - ist nicht so schwer. Wenn du schon was kannst, dann wende es an

-
-
-
-
Ein großer Schritt in der Entwicklung ist getan. Das ist der jetzige Perseus-Syntax:
Codepy = 0; while py < Height px = 0; while px < Width SetPixel(hDC, px, py, px * py * 5); px = px + 1; wend py = py + 1; wendDas neue Test-Programm kann hier geladen werden: http://www.workupload.com/file/iqP8QwU
-
Tja so einfach ist das nicht. Wenn du nicht direkt im Speicher arbeitest ist das nicht wirklich relevant. Es sollte immer als letzes zu lösendes Problem übrig bleiben

-
Da hättest du auch einen neuen machen können. 2011 …

-
[Blockierte Grafik: http://i555.photobucket.com/albums/jj479/m…Interesting.gif]
Zitat von timmyautoBert Der pure Neid [...] nicht nur schreiben können, sondern auch noch Programmieren...
Genau. autoBert hats so gar nicht drauf und nicht ansatzweise sinnvolle Ansätze in seinem Posts geliefert
. Aber von dir kam ja echt schon viel gehaltvolles! Ach nein, anscheinend lässt du lieber schreiben. Im falschen Forum hast du das Teil auch noch gepostet und bis heute nicht geändert oder sonst irgendwie Einsicht gezeigt. Du hast nicht zum ersten Mal voll blockiert eingestellt und von Leuten die nachweislich deutlich, deutlichst, mehr Ahnung haben nichtmal einen Ratschlag angenommen.So bodenlos niveaulos wie du versuchst hier zu verteidigen (was auch immer) ist langsam nur noch lachhaft und traurig mit anzusehen. Dieser ganze Trollvorgang war ja bis jetzt noch eträglich, aber nun gehts zu weit.
Deshalb schließe ich mich an: Vote 4 Close und du kannst dich mit deinen bereitwilligen Projektteilnehmern per PN begnügen. Das hier muss nicht so weiter gehen.
-
Wozu jetzt dieser Beitrag? Sinn? Doch Spam?
Mach ichs halt mal kurz. In Skripte den Source, die Exen braucht keiner. Einfach im Klartext den Source, dann kann man ih auch so lesen und mögliche Fehler finden.
-
Mehr Arbeit als nötig. Keine der Dateien hat so viel Inhalt, dass es nicht einfach ein Spoiler mit Source tun würde. Downloads sind schon unbequem und Downloads in Parts? Hier braucht eigentlich keiner eine .exe, die wird auch keiner ausführen, der noch bei Verstand ist (muss nichtmal deine Schuld sein, wenn da was mit reinrutscht).
Einfach nur den Source ^^.
Und jetzt trinken mal alle erstmal nen Tee - ist doch kein Weltuntergang
