2015-12-08 3 views
1

Je sais tracer une ligne sur une surface 2D. Mais je ne trouve pas de moyen de tracer une ligne dans l'espace.Tracer une ligne entre deux points (x1, y1, z1) à (x2, y2, z2)

J'ai écrit une démo

enter image description here

et maintenant je veux tracer une ligne dans l'espace.

et terminer comme ceci:

enter image description here

J'ai terminé la surface 2d tournent dans l'espace utilisé CATransform3D déjà. Mais je ne sais pas comment tracer une ligne dans l'espace.

Merci beaucoup.

+0

Vous utilisez UIBezierPath et drawRect() – Arbitur

+0

@Arbitur Mais le chemin n'a pas d'axe 0 – 100mango

+0

Est-ce vraiment nécessaire? – Arbitur

Répondre

0

Vous essayez de dessiner une image 3D sur une surface 2D. Par conséquent, vous besoin d'une sorte de cartographie

https://en.m.wikipedia.org/wiki/3D_projection

a quelques options pour vous. projection orthographiques est probablement ce que vous voulez que

https://upload.wikimedia.org/math/8/3/a/83a402b37056afa1dd4c8d706a9a2d75.png

est l'équation que vous voulez utiliser où s est un facteur d'échelle et c est un décalage

+0

merci pour votre réponse rapide. J'ai fini la surface de rotation 2d dans l'espace utilise déjà CATransform3D. Mais je ne sais pas comment tracer une ligne dans l'espace. Pourriez-vous me montrer comment l'accomplir? – 100mango

1

dessin normal sur iOS est en 2D. Core Animation est "2.5D", où il peut dessiner des images plates avec une fausse perspective 3D. Cela ne vous permet pas de "dessiner dans l'espace".

Si vous voulez un réel dessin en perspective 3D, vous devez utiliser OpenGL, SceneKit, Metal ou une autre API 3D.