ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния для отобраТСния пространствСнных Ρ„ΠΈΠ³ΡƒΡ€

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° вращСния, послСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ»Π²ΠΎΡ€ΠΎΡ‚Π°). ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ SetRotation ΠΈ AddRotation Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ AddRotation ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° SetRotation — заставляСт Π΅Π³ΠΎ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (with every render tick). Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (ΠΈ Π΅ΡΡ‚СствСнно сохранСн Π² Ρ„Π°ΠΉΠ»… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния для отобраТСния пространствСнных Ρ„ΠΈΠ³ΡƒΡ€ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • 2. 1. ОписаниС Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DelphiX
    • 2. 2. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ DirectDraw
      • 2. 2. 1. Π’ΠΈΠ΄Π΅ΠΎ Ρ€Π΅ΠΆΠΈΠΌΡ‹
    • 2. 3. БистСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Direct3DRM®. (Reatined Mode)
    • 2. 4. COM
    • 2. 6. Руководство программиста
      • 2. 6. 1. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΠ°Ρ структура состава ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
      • 2. 6. 2. ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² DelphiX
      • 2. 6. 3. ОписаниС класса TmainForm
      • 2. 6. 4. ОписаниС класса TDXGraph
      • 2. 6. 5. ОписаниС динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ColorDLL
    • 2. 7. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • 3. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° испытаний
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • 1. Листинг модуля MainUnit

2.6.2 ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² DelphiX.

DXDrawInitializeSurface.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ запускаСтся ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDXDraw. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ DXDraw инкапсулируСт D3D, D3D2, D3Ddevice, D3DDevice2, D3DRM, D3DRM2, D3DRMDevice, D3DRMDevice2, DDraw — Π½ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйсы DirectX. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° DXDraw. D3DRMDevice2.SetRenderMode (D3DRMRENDERMODE_BLENDEDTRANSPARENCY or D3DRMRENDERMODE_ SORTEDTRANSPARENCY). Π­Ρ‚ΠΈ Π΄Π²Π° Ρ„Π»Π°Π³Π° установлСны Π²ΠΎΡ‚ для Ρ‡Π΅Π³ΠΎ — Ссли Ρƒ Π½Π°Ρ Π΄Π²Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° находятся ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈ ΠΎΠ±Π° Π²ΠΈΠ΄Π½Ρ‹ (Ρ‚.Π΅. Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Ρƒ Π½ΠΈΡ… ΠΏΠΎ Ρ‡Π°ΡΠΎΠ²ΠΎΠΉ) Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΡΠΏΠ΅Ρ€Π²Π° ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ Z, Ρ‡Ρ‚ΠΎΠ± ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΊΠΎΠ³ΠΎ Π·Π°Π³ΠΎΡ€Π°ΠΆΠΈΠ²Π°Π΅Ρ‚. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ сортировку Ρ„Π»Π°Π³, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ D3DRMRENDERMODE_SORTED TRANSPARENCY.

НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌ являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄.

DXDrawInitialize.

Π—Π΄Π΅ΡΡŒ сначала ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ„Ρ€Π΅ΠΉΠΌΠ° — Mesh ΠΈ Light, для нашСго Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π΄Π»Ρ Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ, Π΅Π³ΠΎ ΠΎΡΠ²Π΅Ρ‰Π°ΡŽΡ‰Π΅ΠΉ.

MeshFrame.SetRotation (DXDraw.Scene, 0.0, 10.0, 0.0, Scale).

(ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° вращСния, послСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ»Π²ΠΎΡ€ΠΎΡ‚Π°). ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ SetRotation ΠΈ AddRotation Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ AddRotation ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° SetRotation — заставляСт Π΅Π³ΠΎ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (with every render tick).

ΠŸΠΎΡ‚ΠΎΠΌ создаСтся Ρ‚.Π½. MeshBuilder — ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для добавлСния ΠΊ Π½Π΅ΠΌΡƒ Π³Ρ€Π°Π½Π΅ΠΉ.

Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (ΠΈ Π΅ΡΡ‚СствСнно сохранСн Π² Ρ„Π°ΠΉΠ»). По Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ X. Π’ ΡΠ°ΠΌΠΎΠΌ ΠΆΠ΅ Π΄Π΅Π»Π΅, Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎ. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Torus3D ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ матСматичСски ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΡƒΠ».

MeshBuilder.Scale (3, 3, 3) примСняСм для увСличСния, допустим, Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. Π€Π°Ρ€ΠΎΠ½ΠΎΠ² Π’.Π’. Delphi 5. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс.-М.:"НолидТ", 1998.-400с.
  2. Π‘Π²Π°Π½, Π’ΠΎΠΌ. Delphi 4. Библия Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». К; М.; БПб.: Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΈΠΊΠ°, 1998. 672 с.
  3. ΠœΠ°Ρ€ΠΊΠΎ ΠšΡΠ½Ρ‚Ρƒ. Delphi 5 для профСссионалов.-БПб.: ΠŸΠΈΡ‚Π΅Ρ€. 2001. 944 с.
  4. Бобровский Π‘. Delphi 5: ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс- БПб: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «ΠŸΠΈΡ‚Π΅Ρ€», 2000.- 640с.
  5. А.М.Π•ΠΏΠ°Π½Π΅ΡˆΠ½ΠΈΠΊΠΎΠ², Π’. А. Π•ΠΏΠ°Π½Π΅ΡˆΠ½ΠΈΠΊΠΎΠ² ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡ€Π΅Π΄Π΅ Delphi.-М.:"Π”ΠΈΠ°Π»ΠΎΠ³ МИЀИ", 1998.
  6. Π .И. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈ Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. 3-ΠΈΠ·Π΄. -Мн.: Π’Ρ‹Ρˆ.шк. 1986. — 462 с.
  7. Π›. АммСрал ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅. ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π».-М.:Π‘ΠΎΠ» БистСм, 1992.-224с.
  8. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Delphi World 6.0 http://delphiworld.narod.ru Акулов Николай.
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ