Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


noll-gravitation

Postades av 2002-05-09 15:58:56 - Markus Jarderot, i forum visual basic - allmänt, Tråden har 1 Kommentarer och lästs av 460 personer

vad är problemet med följande kod...
den ska rita upp två cirklar som ska agera som planeter i ett gravistationsfält som utgår från mitten (0,0).
Jag får bara "planeterna" att gå rakt from... oavsett riktning.
gravitationen har jag satt som en kraft mot mitten.
<code>
Const PI As Single = 3.14159265358979

Private Type Obj
X As Long
Y As Long
Ang As Single
Spd As Long
Rad As Long
End Type
Dim Circles(0 To 1) As Obj

Private Sub Form_Load()
Randomize Timer
Dim sw As Long, sh As Long

With Picture1
sw = .ScaleWidth 'Få (0,0) i mitten
sh = .ScaleHeight

.ScaleMode = 0 'User
.ScaleLeft = -sw / 2
.ScaleTop = -sh / 2
.ScaleWidth = sw / 2
.ScaleHeight = sh / 2
End With

For i = 0 To UBound(Circles)
With Circles(i)
.X = Fix(Rnd * Picture1.ScaleHeight) + Picture1.ScaleLeft
.Y = Fix(Rnd * Picture1.ScaleHeight) + Picture1.ScaleTop

.Ang = Rnd * 2 * PI
.Spd = Rnd * 15
.Rad = Rnd * 300
End With
Next i
End Sub

Private Sub Form_Resize()
Picture1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

Private Sub Timer1_Timer()
On Error Resume Next
Dim X1 As Single, Y1 As Single, V1 As Single, S1 As Single 'Aktuella farten
Dim X2 As Single, Y2 As Single, V2 As Single, S2 As Single 'Gravitationskraften
Dim X3 As Single, Y3 As Single, V3 As Single, S3 As Single 'Nya riktningen
'V är riktningen (radianer)
'S är kraften/farten
'X och Y är kordinater
For i = 0 To UBound(Circles)
With Circles(i)
V1 = .Ang
S1 = .Spd
X1 = S1 * Cos(V1)
Y1 = S1 * Sin(V1)
V2 = Atn(.Y / .X)
S2 = 1.5
X2 = S2 * Cos(V2)
Y2 = S2 * Sin(V2)
X3 = X1 + X2
Y3 = Y1 + Y2
V3 = Atn(Y3 / X3)
S3 = Sqr(X3 ^ 2 + Y3 ^ 2)
Picture1.Circle (.X, .Y), .Rad, Picture1.BackColor
Picture1.Line (.X, .Y)-(X3, Y3), RGB(0, 255, 0)
.X = X3
.Y = Y3
.Ang = V3
.Spd = S3
Picture1.Circle (.X, .Y), .Rad, RGB(255, 0, 0)
End With
Next i
End Sub
</code>



Svara

Sv: noll-gravitation

Postades av 2002-05-10 18:52:24 - Niklas Jansson

Konstig kod...
Vilken formel använder du dig av?

Jad skulle definiera Obj så här:

Type Obj
x As Single
y As Single
vx As Single
vy As Single
m As Single
End Type

Sedan hade jag gjort en typ för kraft:

Type Force
x As Single
y As Single
End Type


Sedan en funktion för att applicera en kraft på ett Obj under tiden t:

Sub ApplyForce (o As Object, f As Force, t As Single)
o.vx=o.vx+t*f.x/o.m
o.vy=o.vy+t*f.y/o.m
End Sub

och en funktion för att flytta ett objekt under tiden t:

Sub MoveObj (o As Object, t As Single)
o.x=o.x+t*o.vx
o.y=o.y+t*o.vy
End Sub

Och slutligen en funktion som ger kraften på ett objekt när det utsätts för ett annat - och detta får du med formeln:

F=k*m1*m2/(d*d)

där d är avståndet mellan. Jag är tyvärr inte säker på vilken metod att räkna ut det som är effektivast, men jag återkommer om du inte löser det själv.

/Niklas Jansson


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 612
27 953
271 709
6 588
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies