How can I create a mathematically correct arc/circular segment?
$begingroup$
Given 3 vertices, or a chord and height, how can I create a mathematically correct arc/circular segment with an even distribution of vertices while controlling for the number of vertices.
I frequently need to model arcs in Blender from real-world measurements. Typically I know the cord and height of the arc, giving me 3 points on the full circle.
To create a mathematically correct arc, controlling for the number of vertices, my workflow is as follows:
- Plug the coordinates of the three vertices into a digital graphics calculator.
- Retrieve the location of the centre of the full circle, and the angle between the vertices at either end of the cord.
- Place the cursor at the centre of the full circle in Blender by editing the 3D cursor coordinates.
- Select one vertex on the chord and use the spin tool, manually entering in the angle retrieved from the graphics calculator and the number of desired vertices.
While this produces an accurate result it is a rather tedious process. How can I achieve this same result using a faster workflow?
modeling scripting add-on geometry
$endgroup$
add a comment |
$begingroup$
Given 3 vertices, or a chord and height, how can I create a mathematically correct arc/circular segment with an even distribution of vertices while controlling for the number of vertices.
I frequently need to model arcs in Blender from real-world measurements. Typically I know the cord and height of the arc, giving me 3 points on the full circle.
To create a mathematically correct arc, controlling for the number of vertices, my workflow is as follows:
- Plug the coordinates of the three vertices into a digital graphics calculator.
- Retrieve the location of the centre of the full circle, and the angle between the vertices at either end of the cord.
- Place the cursor at the centre of the full circle in Blender by editing the 3D cursor coordinates.
- Select one vertex on the chord and use the spin tool, manually entering in the angle retrieved from the graphics calculator and the number of desired vertices.
While this produces an accurate result it is a rather tedious process. How can I achieve this same result using a faster workflow?
modeling scripting add-on geometry
$endgroup$
add a comment |
$begingroup$
Given 3 vertices, or a chord and height, how can I create a mathematically correct arc/circular segment with an even distribution of vertices while controlling for the number of vertices.
I frequently need to model arcs in Blender from real-world measurements. Typically I know the cord and height of the arc, giving me 3 points on the full circle.
To create a mathematically correct arc, controlling for the number of vertices, my workflow is as follows:
- Plug the coordinates of the three vertices into a digital graphics calculator.
- Retrieve the location of the centre of the full circle, and the angle between the vertices at either end of the cord.
- Place the cursor at the centre of the full circle in Blender by editing the 3D cursor coordinates.
- Select one vertex on the chord and use the spin tool, manually entering in the angle retrieved from the graphics calculator and the number of desired vertices.
While this produces an accurate result it is a rather tedious process. How can I achieve this same result using a faster workflow?
modeling scripting add-on geometry
$endgroup$
Given 3 vertices, or a chord and height, how can I create a mathematically correct arc/circular segment with an even distribution of vertices while controlling for the number of vertices.
I frequently need to model arcs in Blender from real-world measurements. Typically I know the cord and height of the arc, giving me 3 points on the full circle.
To create a mathematically correct arc, controlling for the number of vertices, my workflow is as follows:
- Plug the coordinates of the three vertices into a digital graphics calculator.
- Retrieve the location of the centre of the full circle, and the angle between the vertices at either end of the cord.
- Place the cursor at the centre of the full circle in Blender by editing the 3D cursor coordinates.
- Select one vertex on the chord and use the spin tool, manually entering in the angle retrieved from the graphics calculator and the number of desired vertices.
While this produces an accurate result it is a rather tedious process. How can I achieve this same result using a faster workflow?
modeling scripting add-on geometry
modeling scripting add-on geometry
asked Mar 9 at 11:48
BlenderBroBlenderBro
634418
634418
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
Add Primitive Arc Operator
The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh
template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy.props import (
IntProperty,
BoolProperty,
BoolVectorProperty,
FloatProperty,
FloatVectorProperty,
)
class AddArc(bpy.types.Operator):
"""Add a simple arc mesh"""
bl_idname = "mesh.primitive_arc_add"
bl_label = "Add Arc"
bl_options = {'REGISTER', 'UNDO'}
length: FloatProperty(
name="length",
description="Chord Length",
min=0.01, max=100.0,
default=2.0,
)
height: FloatProperty(
name="Height",
description="Arc Height",
min=0.01, max=100.0,
default=1.0,
)
segments: IntProperty(
name="Arc Segments",
description="Number of Segments",
min=1,
default=8,
)
layers: BoolVectorProperty(
name="Layers",
description="Object Layers",
size=20,
options={'HIDDEN', 'SKIP_SAVE'},
)
# generic transform props
view_align: BoolProperty(
name="Align to View",
default=False,
)
location: FloatVectorProperty(
name="Location",
subtype='TRANSLATION',
)
rotation: FloatVectorProperty(
name="Rotation",
subtype='EULER',
)
def execute(self, context):
h = self.height
a = self.length / 2
r = (a * a + h * h) / (2 * h)
if abs(a / r) > 1:
# math domain error on arcsin
return {'CANCELLED'}
angle = 2 * asin(a / r)
mesh = bpy.data.meshes.new("Arc")
bm = bmesh.new()
v = bm.verts.new((0, r, 0))
bmesh.ops.rotate(bm,
verts=[v],
matrix=Matrix.Rotation(angle/2, 3, 'Z')
)
bmesh.ops.spin(bm,
geom=[v],
axis=(0, 0, 1),
steps=self.segments,
angle=-angle,
)
for v in bm.verts:
v.co.y -= r - h
v.select = True
bm.to_mesh(mesh)
mesh.update()
# add the mesh as an object into the scene with this utility module
from bpy_extras import object_utils
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(AddArc.bl_idname, icon='MESH_CUBE')
def register():
bpy.utils.register_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
def unregister():
bpy.utils.unregister_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
if __name__ == "__main__":
register()
# test call
bpy.ops.mesh.primitive_arc_add()
$endgroup$
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
add a comment |
$begingroup$
- Insert a plane with the edge length matching your chord's length;
- Remove the plane's two opposite vertices to have a segment;
- Subdivide the segment the odd number of times;
- Use proportional editing with the circular fall-off, the middle vertex selected, and move everything along Z axis to the desired height.
You may also join the opposite ends of your arc creating an edge if needed.
$endgroup$
2
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "502"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f133870%2fhow-can-i-create-a-mathematically-correct-arc-circular-segment%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Add Primitive Arc Operator
The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh
template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy.props import (
IntProperty,
BoolProperty,
BoolVectorProperty,
FloatProperty,
FloatVectorProperty,
)
class AddArc(bpy.types.Operator):
"""Add a simple arc mesh"""
bl_idname = "mesh.primitive_arc_add"
bl_label = "Add Arc"
bl_options = {'REGISTER', 'UNDO'}
length: FloatProperty(
name="length",
description="Chord Length",
min=0.01, max=100.0,
default=2.0,
)
height: FloatProperty(
name="Height",
description="Arc Height",
min=0.01, max=100.0,
default=1.0,
)
segments: IntProperty(
name="Arc Segments",
description="Number of Segments",
min=1,
default=8,
)
layers: BoolVectorProperty(
name="Layers",
description="Object Layers",
size=20,
options={'HIDDEN', 'SKIP_SAVE'},
)
# generic transform props
view_align: BoolProperty(
name="Align to View",
default=False,
)
location: FloatVectorProperty(
name="Location",
subtype='TRANSLATION',
)
rotation: FloatVectorProperty(
name="Rotation",
subtype='EULER',
)
def execute(self, context):
h = self.height
a = self.length / 2
r = (a * a + h * h) / (2 * h)
if abs(a / r) > 1:
# math domain error on arcsin
return {'CANCELLED'}
angle = 2 * asin(a / r)
mesh = bpy.data.meshes.new("Arc")
bm = bmesh.new()
v = bm.verts.new((0, r, 0))
bmesh.ops.rotate(bm,
verts=[v],
matrix=Matrix.Rotation(angle/2, 3, 'Z')
)
bmesh.ops.spin(bm,
geom=[v],
axis=(0, 0, 1),
steps=self.segments,
angle=-angle,
)
for v in bm.verts:
v.co.y -= r - h
v.select = True
bm.to_mesh(mesh)
mesh.update()
# add the mesh as an object into the scene with this utility module
from bpy_extras import object_utils
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(AddArc.bl_idname, icon='MESH_CUBE')
def register():
bpy.utils.register_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
def unregister():
bpy.utils.unregister_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
if __name__ == "__main__":
register()
# test call
bpy.ops.mesh.primitive_arc_add()
$endgroup$
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
add a comment |
$begingroup$
Add Primitive Arc Operator
The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh
template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy.props import (
IntProperty,
BoolProperty,
BoolVectorProperty,
FloatProperty,
FloatVectorProperty,
)
class AddArc(bpy.types.Operator):
"""Add a simple arc mesh"""
bl_idname = "mesh.primitive_arc_add"
bl_label = "Add Arc"
bl_options = {'REGISTER', 'UNDO'}
length: FloatProperty(
name="length",
description="Chord Length",
min=0.01, max=100.0,
default=2.0,
)
height: FloatProperty(
name="Height",
description="Arc Height",
min=0.01, max=100.0,
default=1.0,
)
segments: IntProperty(
name="Arc Segments",
description="Number of Segments",
min=1,
default=8,
)
layers: BoolVectorProperty(
name="Layers",
description="Object Layers",
size=20,
options={'HIDDEN', 'SKIP_SAVE'},
)
# generic transform props
view_align: BoolProperty(
name="Align to View",
default=False,
)
location: FloatVectorProperty(
name="Location",
subtype='TRANSLATION',
)
rotation: FloatVectorProperty(
name="Rotation",
subtype='EULER',
)
def execute(self, context):
h = self.height
a = self.length / 2
r = (a * a + h * h) / (2 * h)
if abs(a / r) > 1:
# math domain error on arcsin
return {'CANCELLED'}
angle = 2 * asin(a / r)
mesh = bpy.data.meshes.new("Arc")
bm = bmesh.new()
v = bm.verts.new((0, r, 0))
bmesh.ops.rotate(bm,
verts=[v],
matrix=Matrix.Rotation(angle/2, 3, 'Z')
)
bmesh.ops.spin(bm,
geom=[v],
axis=(0, 0, 1),
steps=self.segments,
angle=-angle,
)
for v in bm.verts:
v.co.y -= r - h
v.select = True
bm.to_mesh(mesh)
mesh.update()
# add the mesh as an object into the scene with this utility module
from bpy_extras import object_utils
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(AddArc.bl_idname, icon='MESH_CUBE')
def register():
bpy.utils.register_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
def unregister():
bpy.utils.unregister_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
if __name__ == "__main__":
register()
# test call
bpy.ops.mesh.primitive_arc_add()
$endgroup$
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
add a comment |
$begingroup$
Add Primitive Arc Operator
The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh
template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy.props import (
IntProperty,
BoolProperty,
BoolVectorProperty,
FloatProperty,
FloatVectorProperty,
)
class AddArc(bpy.types.Operator):
"""Add a simple arc mesh"""
bl_idname = "mesh.primitive_arc_add"
bl_label = "Add Arc"
bl_options = {'REGISTER', 'UNDO'}
length: FloatProperty(
name="length",
description="Chord Length",
min=0.01, max=100.0,
default=2.0,
)
height: FloatProperty(
name="Height",
description="Arc Height",
min=0.01, max=100.0,
default=1.0,
)
segments: IntProperty(
name="Arc Segments",
description="Number of Segments",
min=1,
default=8,
)
layers: BoolVectorProperty(
name="Layers",
description="Object Layers",
size=20,
options={'HIDDEN', 'SKIP_SAVE'},
)
# generic transform props
view_align: BoolProperty(
name="Align to View",
default=False,
)
location: FloatVectorProperty(
name="Location",
subtype='TRANSLATION',
)
rotation: FloatVectorProperty(
name="Rotation",
subtype='EULER',
)
def execute(self, context):
h = self.height
a = self.length / 2
r = (a * a + h * h) / (2 * h)
if abs(a / r) > 1:
# math domain error on arcsin
return {'CANCELLED'}
angle = 2 * asin(a / r)
mesh = bpy.data.meshes.new("Arc")
bm = bmesh.new()
v = bm.verts.new((0, r, 0))
bmesh.ops.rotate(bm,
verts=[v],
matrix=Matrix.Rotation(angle/2, 3, 'Z')
)
bmesh.ops.spin(bm,
geom=[v],
axis=(0, 0, 1),
steps=self.segments,
angle=-angle,
)
for v in bm.verts:
v.co.y -= r - h
v.select = True
bm.to_mesh(mesh)
mesh.update()
# add the mesh as an object into the scene with this utility module
from bpy_extras import object_utils
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(AddArc.bl_idname, icon='MESH_CUBE')
def register():
bpy.utils.register_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
def unregister():
bpy.utils.unregister_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
if __name__ == "__main__":
register()
# test call
bpy.ops.mesh.primitive_arc_add()
$endgroup$
Add Primitive Arc Operator
The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh
template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy.props import (
IntProperty,
BoolProperty,
BoolVectorProperty,
FloatProperty,
FloatVectorProperty,
)
class AddArc(bpy.types.Operator):
"""Add a simple arc mesh"""
bl_idname = "mesh.primitive_arc_add"
bl_label = "Add Arc"
bl_options = {'REGISTER', 'UNDO'}
length: FloatProperty(
name="length",
description="Chord Length",
min=0.01, max=100.0,
default=2.0,
)
height: FloatProperty(
name="Height",
description="Arc Height",
min=0.01, max=100.0,
default=1.0,
)
segments: IntProperty(
name="Arc Segments",
description="Number of Segments",
min=1,
default=8,
)
layers: BoolVectorProperty(
name="Layers",
description="Object Layers",
size=20,
options={'HIDDEN', 'SKIP_SAVE'},
)
# generic transform props
view_align: BoolProperty(
name="Align to View",
default=False,
)
location: FloatVectorProperty(
name="Location",
subtype='TRANSLATION',
)
rotation: FloatVectorProperty(
name="Rotation",
subtype='EULER',
)
def execute(self, context):
h = self.height
a = self.length / 2
r = (a * a + h * h) / (2 * h)
if abs(a / r) > 1:
# math domain error on arcsin
return {'CANCELLED'}
angle = 2 * asin(a / r)
mesh = bpy.data.meshes.new("Arc")
bm = bmesh.new()
v = bm.verts.new((0, r, 0))
bmesh.ops.rotate(bm,
verts=[v],
matrix=Matrix.Rotation(angle/2, 3, 'Z')
)
bmesh.ops.spin(bm,
geom=[v],
axis=(0, 0, 1),
steps=self.segments,
angle=-angle,
)
for v in bm.verts:
v.co.y -= r - h
v.select = True
bm.to_mesh(mesh)
mesh.update()
# add the mesh as an object into the scene with this utility module
from bpy_extras import object_utils
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(AddArc.bl_idname, icon='MESH_CUBE')
def register():
bpy.utils.register_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
def unregister():
bpy.utils.unregister_class(AddArc)
bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
if __name__ == "__main__":
register()
# test call
bpy.ops.mesh.primitive_arc_add()
edited Mar 9 at 14:25
answered Mar 9 at 13:48
batFINGERbatFINGER
25.5k52876
25.5k52876
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
add a comment |
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
$begingroup$
Works amazingly. Thanks! Should definitely be added to the bundled "Extra Objects" add-on.
$endgroup$
– BlenderBro
Mar 9 at 22:09
add a comment |
$begingroup$
- Insert a plane with the edge length matching your chord's length;
- Remove the plane's two opposite vertices to have a segment;
- Subdivide the segment the odd number of times;
- Use proportional editing with the circular fall-off, the middle vertex selected, and move everything along Z axis to the desired height.
You may also join the opposite ends of your arc creating an edge if needed.
$endgroup$
2
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
add a comment |
$begingroup$
- Insert a plane with the edge length matching your chord's length;
- Remove the plane's two opposite vertices to have a segment;
- Subdivide the segment the odd number of times;
- Use proportional editing with the circular fall-off, the middle vertex selected, and move everything along Z axis to the desired height.
You may also join the opposite ends of your arc creating an edge if needed.
$endgroup$
2
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
add a comment |
$begingroup$
- Insert a plane with the edge length matching your chord's length;
- Remove the plane's two opposite vertices to have a segment;
- Subdivide the segment the odd number of times;
- Use proportional editing with the circular fall-off, the middle vertex selected, and move everything along Z axis to the desired height.
You may also join the opposite ends of your arc creating an edge if needed.
$endgroup$
- Insert a plane with the edge length matching your chord's length;
- Remove the plane's two opposite vertices to have a segment;
- Subdivide the segment the odd number of times;
- Use proportional editing with the circular fall-off, the middle vertex selected, and move everything along Z axis to the desired height.
You may also join the opposite ends of your arc creating an edge if needed.
answered Mar 9 at 12:29
Lukasz-40sthLukasz-40sth
929414
929414
2
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
add a comment |
2
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
2
2
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
For the purposes of this question I'm interested in creating mathematically accurate arcs as opposed to eyeballing approximations.
$endgroup$
– BlenderBro
Mar 9 at 12:41
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
$begingroup$
With arcs and circles it's always an approximation as there's this pi number. And if you input given values, approximated as well, exactly you get the result.
$endgroup$
– Lukasz-40sth
Mar 9 at 13:18
add a comment |
Thanks for contributing an answer to Blender Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f133870%2fhow-can-i-create-a-mathematically-correct-arc-circular-segment%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown