3

I'm very new to topology. Suppose I want to create a 1/2/3 dim manifold, and project it onto a 10 dimensional space. How should I do that? I went through the website https://juliamanifolds.github.io/Manifolds.jl/v0.1/interface.html#

And my current code is like

using ManifoldsBase, LinearAlgebra, Test
import ManifoldsBase: check_point, check_vector, manifold_dimension, exp!, inner, representation_size, get_embedding
import Base: show

"""
    ScaledSphere{N} <: AbstractDecoratorManifold{ℝ}

Define an `N`-sphere of radius `r`. Construct by `ScaledSphere(radius,n)`.
"""
struct ScaledSphere{N} <: AbstractDecoratorManifold{ManifoldsBase.ℝ} where {N}
    radius::Float64
end
ScaledSphere(radius, n) = ScaledSphere{n}(radius)
Base.show(io::IO, M::ScaledSphere{n}) where {n} = print(io, "ScaledSphere($(M.radius),$n)")
S = ScaledSphere(1.5, 2)

I can only find how to project a point onto a tangent vector, but what about project a point/circle/sphere onto the 10-dimensional space?

Joe
  • 93
  • 1
  • 5
  • I am not 100% sure what your aim is, since your manifold is 2-dimensional, so the sphere is embedded in R3 – what do you mean by projecting onto 10-dimensional space when you are embedded in 3D? – Ronny May 07 '23 at 07:08
  • For the projection, there are `project(M, p, X)` which projects `X` onto the tangent space at `p` to `M`. But there is also `project(M, x)` which projects `x` from the embedding of a manifold onto the manifold. – Ronny May 07 '23 at 07:09

0 Answers0