PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3D-Holo-Map



Dark
25.02.2010, 16:04
Hi ich habe hier mal einen E2 chip gemacht der einen angegebenen bereich scannt und ihn mit einem wire_holo_ermitter darstellen kann




@inputs

Calculate = 0/1 } bei 1 startet die messung / bei 0 kehrt der chip zur "GroundStation" zurück um änderungen vorzunehemen

GPS = vector } Am besten einen Gps chip nehmen, kennzeichnet den mittelpunkt de gescannten bereichs

GroundStation = vector } Kennzeichnet den wartungspunkt

HoloHeightParam = [Zahl] } Höhenverschiebung der Holo karte

Scale_Y Scale_X Scale_Z = [Zahl] } Skalierung der holo karte am besten mit den werten 0.125 0.125 0.1 benutzen (Vorrausetzung keine änderungen der internen Parameter)

@outputs

XOut -> das X inputt des holoermitters
YOut -> das Y inputt des holoermitters
HightOut-> das Z inputt des holoermitters




Im singleplayer läuft der Chip bei mir mit 388 ops und 8%

ich versuche jetzt den code noch zu vereinfachen und eine speichermöglichkeite der werte einzubauen



Hier der Code

@name 3D-Map-Creator-Made-By-Dark
@inputs Calculate GPS:vector GroundStation:vector HoloHeightParam
@inputs Scale_Y Scale_X Scale_Z

@outputs XOut YOut HightOut

@persist A:angle
@persist Range
@persist Clear Zout
@persist I I1 X Y Z ScaleX FeetX FeetY ScaleY
@trigger
if(first())
{
X = -ScaleX Y = -ScaleY

ScaleX = 500
ScaleY = 500
Scale = 0.5

FeetX = 5
FeetY = 40

I1 = 1

holoCreate(1)
holoCreate(2)

}
interval(10)


Range = ranger(10000,0,0):distance()




V = entity():toLocal(rotationVector(quat(ang(180,0,0))/quat(entity()))+entity():pos())
entity():applyTorque((150*V - 12*entity():angVelVector())*entity():inertia())

entity():applyForce(((vec(X + GPS:x(),Y + GPS:y(),Z + 1000) - entity():pos()) * entity():mass()) * 50 - entity():vel())

if(Calculate == 1)
{


holoPos(1,vec(X + GPS:x(),Y + GPS:y(),Z + 700))
holoPos(2,vec(X + GPS:x(),Y + GPS:y(),Z + 100))

holoScale(2,vec(FeetX / 5,FeetY / 5,1000))
holoScale(1,vec(FeetX / 5,FeetY / 5,1000))

if(I == 1)
{
X = -ScaleX * I1
Y = -ScaleY * I1
Z = 0
I = 0
}

X += FeetX * I1
if(X == (ScaleX * I1))
{
I1 = I1 * -1
X = -ScaleX * I1
Y += FeetY

}
if(Y >= ScaleY)
{
Y = -ScaleY
}
}elseif(Calculate == 0)
{
X = GroundStation:x() - GPS:x()
Y = GroundStation:y() - GPS:y()
Z = GroundStation:z() - GPS:z() + 15 - 900
I = 1
holoScale(1,vec(0,0,0))
holoScale(2,vec(0,0,0))
}

XOut = X * Scale_X
YOut = Y * Scale_Y
HightOut = -(((Range - 1000) * Scale_Z) - HoloHeightParam)

sHx.Devil
26.02.2010, 07:58
Mit anderen Worten ist es damit möglich so eine art "Scan der Planetenoberfläche" machen und eine Holo-Map in der "Komandozentrale" des Raumschiffes oder so anzeigen wie man es oft in SiFi Filmen sieht?

Das is ja mal richtig genial.

Gevatter Tod
26.02.2010, 13:52
:up: gut für sb3 :gmod:

1mannlan
26.02.2010, 15:04
Soweit ich weiß, wird euch das ganze in Raumschiffen aber garnix bringen, weil wenn ihr euch mit holo emittern beschäfftigt hättet (oder habt), wüsstet ihr, das die statisch sind (also an koordinaten). Un wenn sich der emitter bewegt bringt das garnix. Und ich denke auch, das das ganze wohl einige Zeit zum aufbau braucht....(2min oder so).
Kann mich natürlich eines besseren belehren lassen :).

frog
26.02.2010, 15:08
ich hab mal irgendwo ne version mit den E2 Holos gesehen( können fix zum E2 sein) könnt ihr ja mal suchen...und1mannlan: probier mal ob du das hinkriegst^^ wäre geil^^

Dark
26.02.2010, 15:15
der wire_holo_ermitter ist nicht statisch die holo punkte sind an den ermitter gebunden

frog
26.02.2010, 15:23
stimmt^^ aber das mit den E2 holos ist auch geil aber erstmal:

Vielen dank^^ für das gute stück^^

1mannlan
26.02.2010, 15:35
Kommt drauf an, ob man ihn statische oder Vectorkoords gibt, is mir grad eingefallen. Deshalb gehts doch :P.
Aber an den Autor, wie lang dauert der Scan?

Dark
26.02.2010, 16:14
er hört nicht auf er scannt immer neu und es kommt drauf an ob man z.b. die internen parameter scale x/y ändert und die feet(schritte) ändert (umso größer feet umso ungenauer aber schneller ist der scan und scale ist die größe des scan bereichs)


es ist übrigens nicht möglich den chip mit weniger ticks laufen zu lassen evtl geht es noch mit 20 aber mit 50 auf jedenfall nicht

1mannlan
26.02.2010, 17:54
Und wie lange dauerts mit "normaler" Scale? so durchschnitt^^

Dark
26.02.2010, 18:12
max 30 sekunden oder so
ich weioß es aber gtrad nicht genau