# [name]

فئة أساسية مجردة لإنشاء كائن [name] يحتوي على طرق للإدراج. لمجموعة من [name]s انظر [page:CurvePath].

## المنشئ (Constructor)

### [name]()

ينشئ هذا المُنشئ [name] جديدًا.

## الخصائص (Properties)

### [property:Integer arcLengthDivisions]

يحدد هذا القيمة عدد الشعبات عند حساب طول الشطر التراكمي للمنحنى عبر [page:.getLengths]. لضمان الدقة عند استخدام طرق مثل [page:.getSpacedPoints]، يوصى بزيادة [page:.arcLengthDivisions] إذا كان المنحنى كبيرًا جدًا. الافتراضي هو 200.

## الوظائف (Methods)

### [method:Vector getPoint]( [param:Float t], [param:Vector optionalTarget] )

[page:Float t] - موقع على المنحنى. يجب أن يكون في النطاق [0، 1].
[page:Vector optionalTarget] - (اختياري) إذا تم تحديده، سيتم نسخ النتيجة في هذا الفيكتور، وإلا سيتم إنشاء فيكتور جديد.
يعود بفيكتور لموقع معين على المنحنى.

### [method:Vector getPointAt]( [param:Float u], [param:Vector optionalTarget] )

[page:Float u] - موقع على المنحنى وفقًا لطول القوس. يجب أن يكون في النطاق [0، 1].
[page:Vector optionalTarget] - (اختياري) إذا تم تحديده، سيتم نسخ النتيجة في هذا الفيكتور، وإلا سيتم إنشاء فيكتور جديد.
يعود بفيكتور لموقع معين على المنحنى وفقًا لطول القوس.

### [method:Array getPoints]( [param:Integer divisions] )

divisions - عدد الأجزاء التي يتم تقسيم المنحنى إليها. الافتراضي هو `5`.
يعود بمجموعة من divisions + 1 نقطة باستخدام getPoint( t ).

### [method:Array getSpacedPoints]( [param:Integer divisions] )

divisions - عدد الأجزاء التي يتم تقسيم المнحنى إليها. الافتراضي هو `5`.
يعود بمجموعة من divisions + 1 نقطة متساوية المسافات باستخدام getPointAt( u ).

### [method:Float getLength]()

احصل على إجمالي طول قوس المنحنى.

### [method:Array getLengths]( [param:Integer divisions] )

احصل على قائمة بطول الشرائح التراكمية.

### [method:undefined updateArcLengths]()

تحديث ذاكرة التخزين المؤقت للمسافة الشريطية التراكمية. يجب استدعاء الطريقة في كل مرة يتم فيها تغيير معلمات المنحنى. إذا كان المنحنى المحدث جزءًا من منحنى مكون مثل [page:CurvePath]، يجب استدعاء [page:.updateArcLengths]() على المنحنى المكوَّن أيضًا.

### [method:Float getUtoTmapping]( [param:Float u], [param:Float distance] )

بالنظر إلى u في النطاق (0 .. 1) ، يعود [page:Float t] أيضًا في النطاق (0 .. 1). يمكن استخدام u و t لإعطائك نقاط هي متساوية البعد من نهايات المنحنى ، باستخدام [page:.getPoint].

### [method:Vector getTangent]( [param:Float t], [param:Vector optionalTarget] )

[page:Float t] - موضع على المنحنى. يجب أن يكون في النطاق [0، 1].
[page:Vector optionalTarget] - (اختياري) إذا تم تحديده ، سيتم نسخ النتيجة في هذا Vector ، وإلا سيتم إنشاء Vector جديد.
يعود بمتجه وحدة مماس على t. إذا لم يكن المنحنى المشتق تطبيق تفريعه المماس ، سيتم استخدام نقطتين صغيرتين delta بعيدًا للعثور على التدرج الذي يبدو أنه يعطي تقريبًا معقولًا.

### [method:Vector getTangentAt]( [param:Float u], [param:Vector optionalTarget] )

[page:Float u] - موقع على المنحنى وفقًا لطول القوس. يجب أن يكون في النطاق [0، 1]. [page:Vector optionalTarget] - (اختياري) إذا تم تحديده، سيتم نسخ النتيجة في هذا الفيكتور، وإلا سيتم إنشاء فيكتور جديد. يعود الميل في نقطة تبعد مسافة متساوية عن طرفي المنحنى من النقطة المعطاة في [page:.getTangent].

### [method:Object computeFrenetFrames]( [param:Integer segments], [param:Boolean closed] )

إنشاء Frenet Frames. يتطلب تعريف منحى في فضاء 3D. مستخدم في هَیْأَات مثل [page:TubeGeometry] أو [page:ExtrudeGeometry].

### [method:Curve clone]()

إنشاء نسخة من هذه الحالة.

### [method:this copy]( [param:Curve source] )

يلصق كائن [name] آخر إلى هذه الحالة.

### [method:Object toJSON]()

يرجع كائن JSON لتمثيل هذه الحالة.

### [method:this fromJSON]( [param:Object json] )

يلصق البيانات من كائن JSON المعطى إلى هذه الحالة.

## المصدر (Source)

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]