首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
CMPE 330代做、Java,c/c++编程代写
项目预算:
开发周期:
发布时间:
要求地区:
Computational Geometry
Assignment for CISC/CMPE 330
1) Intersect-Two-Lines
• Compute the approximate (symbolic) intersection of two lines, with a suitable error metric.
Define each line by fix point P and direction vector v. Use the standard line equation.
• Input: (P1, v1), (P2, v2)
• Output: symbolic intersection point, error
• Testing: Sketch up on paper at least three test cases with easy-to-see solutions (a.k.a. groundtruth). Include intersecting, non-intersecting and parallel lines. Examine if your program
produces the expected output.
(2) Intersect-Line-and-Plane
• Compute the intersection of and plane. The plane is given by a point (A) and its normal vector
(n). The line is given by a fix (P) and the direction vector (v).
• Input: (A, n), (P, v)
• Output: intersection point
• Testing: Sketch up on paper at least three test cases, including a parallel line and plane. Examine
if your program produces the expected output.
(3) Intersect-Line-and-Ellipsoid
• Compute the intersection of a line and the canonical ellipsoid with half-axes lengths a, b, c. The
line is given by a fix (P) and the direction vector (v). Use the standard equations for line and
ellipsoid, derive the 2nd degree polynomial, and find the roots.
• Input: (P, v), (a, b, c)
• Output: number of intersections, intersection point(s)
• Testing: Sketch up on paper at least three test cases with easy-to-see solutions (a.k.a. groundtruth), for 0,1, and 2 intersection points. Examine if your program produces the expected output.
(4) Intersect-Sphere-and-Cylinder
• Compute the number of intersection points (0, 1 infinite) between a sphere and an infinite
cylinder. The sphere is given by its center (C) and radius (R). The cylinder is given by its radius
(r), a point on its central axis (P) and the direction vector of its central axis (v). Explain your
approach in comment or on paper.
• Input: (C, R), (r, P, v)
• Output: number of intersections (0, 1, infinite)
• Testing: Sketch up on paper at least three test cases with easy-to-see solutions (a.k.a. groundtruth). Examine if your program produces the expected output.
5) Reconstruct-Sphere
• Reconstruct the best fitting sphere from a set of points. Explain your approach in comments. The
sphere will be defined by center point (C) and radius (R).
• Input: [points-in]
• Output: C, R
Page 2 of 4
• Testing: Generate points on a general sphere (other than the canonical unit sphere), use 20x20
surface patches, reconstruct, and examine the result.
(6) Generate-Random-Unit-Vector
• Generate a unit vector in random direction in 2D or in 3D.
• Input: 2 or 3 (for the dimension)
• Output: vector
• Testing: Create the following two ground-truth tests: run the function several times for 2D and
3D, and plot resulting points on the canonical unit circle and unit sphere, respectively, and
inspect the results.
(7) Generate-Orthonormal-Frame
• Compute an orthonormal frame from three points (A, B, C). Define the frame by a centre (Oe)
and three base vectors (e1, e2, e3). Place center in the center or gravity.
• Input: (A, B, C)
• Output: Oe, (e1, e2, e3)
• TESTING: Sketch up on paper at least three sufficiently general test cases, with easy-to-see
solutions (a.k.a. ground-truth). One example should be collinear (A, B, C). Examine if your
program produces the expected output.
(8) Rotation-About-Frame-Axis
• Generate a transformation matrix to rotate a point about one of the (x,y,z) frame axes by a given
rotation angle. For future convenience, return the rotation in both 3x3 and 4x4 formats.
• Input: axis, angle
• Output: Rotation matrix (3x3), Homogeneous rotation matrix (4x4)
• TESTING: Sketch up on paper at least 3 sufficiently general test cases, with easy-to-see
solutions (a.k.a. ground-truth), including each axis. Examine if your program produces the
expected output.
(9) Frame-Transformation-to-Home
Let’s assume that you want to track a cancer target in a rigid body (like the head) in the
canonical home Oh(0,0,0) h1(1,0,0) h2(0,1,0) h3(0,0,1). You observe the rigid body in an
arbitrary pose (call it v pose) and you have already computed its body frame in this pose (v
frame) defined by Ov centre and the v1,v2,v2 base vectors.
• Your task is to compute the transformation that takes the perspective from v frame to home.
• Input: (Ov, v1, v2, v3) centre and 3 base vectors in v frame
• Output: Frame transformation 4x4 homogeneous matrix
• TESTING: Sketch up on paper 6 ground truth test cases: 2 with pure translation, 2 with pure
rotation, 2 with both some translation and rotation.) In each test case, make a sketch of the
ground-truth and explain how you constructed the transformations. Run the program and
examine if it correctly reproduces the ground-truth.
Page 3 of 4
(10) Target-Registration-Error-Simulation
Preamble: Simulation is fundamental tool for surgical navigation performance analysis, and it will pop
up in your assignments, repeatedly. Here, you are helped with a step-by-step explanation of the design
and execution of a surgical navigation simulation and analysis problem (just to get a hang of it :-)
The clinical problem: We are about to purchase a
new position tracking device that localizes small
beacons in 3D space. We intend to use three of these
beacons as fiducial markers for tracking a patient’s
head during neurosurgery. We want to integrate the
tracker in a neuro-navigation system for localizing
intracranial hemorrhage, like the white blood clot
shown in the CT image (Fig 1, left). For treatment,
we will drill a small burr hole through the cranium,
enter a thin tube through which we evacuate the
hemorrhage (Fig 1, right). The hemorrhage is often
superficial, like in the figure. In such cases, the
critical element of the surgery is proper placement
of the burr hole, identified in the CT image. The
required surgical targeting accuracy for drilling burr
hole is often rather lenient; in the case shown in the
figure, it is about 5.0 mm. But intracranial hemorrhage is an emergency procedure, the clot must be
evacuated quickly, otherwise the danger of neurological deficit starts skyrocketing. Often there is no time
to transfer the patient to a proper operating room or there is no operating room available, and we need to
perform the procedure at bedside.
In the neuro-navigation system, we will place 3 markers on the patient’s head prior to CT imaging. We
will localize these markers in the CT image space during surgical planning and we will again localize the
markers again during surgery, from which we compute the planned location of the burr hole for drilling.
(Refer to the slide deck: Math Primer, Part 3: Frame Transformations, slide on “Rigid body registration.
Use case: mapping a target from pre-op imaging space to surgical navigation space.)
In a bedside setup, however, we want to use a lightweight and inexpensive tracker. Such a device will be
much less accurate than a high-end tracking device that we typically use in a fully qualified operating
room. This cheap tracking system may have substantial error in localizing the fiducial markers. This error,
which is called Fiducial Localization Error (FLE), causes the target (i.e. the burr hole) to be inaccurately
localized during surgery.
Objective: We must determine the minimum requited accuracy of the new tracking system. In other words,
we need to determine the maximum affordable fiducial localization error (FLE) without compromising
the required surgical targeting accuracy.
Simulated ground-truth setup: First, we will design a simplified representation of the surgical scene. It
needs to be mathematically and practically sufficiently general, yet simple enough for us to sketch it up
on paper. Let us place the tracker in the canonical home, (0,0,0) aligned with the home base (ref. Homer
in his armchair.) Let us model the patient’s head as a sphere of 100 mm radius, placed in (0,0,-300), with
the top of the head in the positive z direction. Let us place 3 markers on the head in A(100,0,-300),
B(-50,86.6,-300), C(-50,-86.6,-300).
Fig 1: Left: A superficial intracranial hemorrhage
(white blood clot) in computed tomography (CT)
imaging and the location of the planned burr hole.
Right: Removal of intracranial hemorrhage in the
operating room.
Page 4 of 4
Target selection: For target registration error, the position of a target point relative to the fiducial markers
matters a great deal. Your first task is to determine the most error-prone target location in the head. Since
we always want to account for the worst case, we will further examine only the most error-prone target
location. Explain your reasoning. Make a sketch of the surgical scene (2 pts).
Now, we are ready to start localizing this target point (Pt) with our inaccurate jittery tracker and analyze
the resulting targeting error.
We will define the Target Registration Error (TRE) as the difference between two observations of the
patient’s head and Pt target point within: the ideal error-free ground-truth observation and an inaccurate
error-ridden observation. (Refer to the slide deck: Math Primer, Part 3: Frame Transformations, slide on
“Rigid body registration. Use case: Inaccurate jittery tracker”.)
Develop a MATLAB program for the following:
Ground-truth observation: Compute the error-free ground-truth observation of the Pt target. Use the
library functions that you have just developed. Check the correctness of your result in the sketch you made
earlier. (3 pts)
Simulated observations (6 pts)
The second observation of the Pt target will carry some simulated error. Let us assume that we do not
know the true distribution of the fiducial localization error (FLE). Alas, we must assume the worst case
and over-estimate the error - because we want our simulation to be stricter than reality, for we must never
pass a faulty system to clinical use. To overestimate fiducial localization error (FLE), we will simulate it
as vector of random direction of a given magnitude FLE. Starting from zero error (FLE=0), we will
gradually increase FLE by a small deltaFLE increment, such as 0.5 mm. We will keep increasing FLE,
until the target registration error (TRE) becomes solidly larger than the allotted TREmax, which is 5.0
mm in our case.
• Start observing the ABC fiducial markers. Displace the ABC markers, each by a different random
vector of FLE magnitude. Compute the erroneous observation of Pt, using the library functions
that you have just developed. Keep observing the ABC markers for a statistically large-enough
number of times, typically N>20. (This simulation is not computationally expensive, so you can
easily run it higher.) In each run, compute the TRE.
o If TRE is above TREmax, quit the simulation, you failed the clinical requirement.
o Otherwise continue, finish off your cycle.
• Increment the magnitude of FLE by deltaFLE and continue the simulation.
Analysis (3 pts)
Your final task is to analyze the results. Plot TREs as a function of FLE. Inspect the plot, explain your
findings, and make a well-reasoned recommendation for the neurosurgeon for the tracking system.
1) Intersect-Two-Lines
Program: algorithm / formula 4
Program: handle exception 1
Program: error metric 2
Test (program and paper) 3
Total 10
2) Intersect-Line-and-Plane
Program 7
Test (program and paper) 3
Total 10
3) Intersect-Line-and-Ellipsoid
Paper: Derive polynomial 3
Program: check determinant 1
Program: find roots 3
Test (program and paper) 3
Total 10
4) Intersect-Sphere-and-Cylinder
Explain method 3
Program algorithm/formula 4
Test (program and paper) 3
Total 10
5) Reconstruct-Sphere
Program: Reconstruction 5
Test (program and paper) 2
Total 7
6) Generate-Random-Unit-Vector
Explain method 4
Program 4
Test (program and paper) 2
Total 10
(7) Generate-Orthonormal-Frame
Program: Centre 2
Program: Bases 3
Program: Normalization 2
Test (program and paper) 3
Total 10
(8) Rotate-About-Frame-Axis
Program: x 2
Program: y 2
Program: z 2
Test (program and paper) 3
Total 9
9) Frame-Transformation-to-Home
Program: frames 1
Program: Translation 1
Program: Rotation 1
Program: Homogeneous transform 1
Test (program and paper) 6
Total 10
10) Target-Tracking-Error-Simulation
Target points, sketch 2
Ground-truth observation 3
Simulated observations 6
Analysis 3
Total 14
TOTAL 100
Page 1 of 1
General Instructions for CISC/CMPE 330 assignments
• Always explain how you solve a problem. Use drawings, math formulas, text, block
diagram, pseudo code - anything that you find them appropriate to convey your
ideas. I must know that you understand what you are doing, and I must be able to
follow your reasoning. Depending on the quality and depth of your reasoning and
discussion or results you may pick (or lose) lots of points.
• Write proper header and richly comment your code. Cleary identify the input and
output. There is no such thing as too much comment. Good style and neatness will
earn you valuable points. The lack of these will cause reduction.
• Consider the validity (or deformity) of the input data, incomplete testing will lead to
deduction of marks.
• Test each module, construct several test cases with known ground-truth answer.
• Write testing m file(s) for each module or problem.
• Capture the output, to show that your program does what it is supposed to do.
Make plots and tables when requested or when they make sense. Add explanation
text as you see it useful.
• Do not use exponential number format. Use decimal digits sensibly and consider
what is precision is practical for the given problem. Generally, resolution finer than
0.1 millimeter is not practically achievable in such a surgical navigation system, so
this should be your limit. Use decimal floating-point format in your outputs.
• Create MATLAB functions for recurring tasks
• Submit the m files and the captured output file, as well as any drawing, or
supplemental information you feel relevant.
• Using source control, such as a private github repository, is recommended but not
required.
• Submit all in one zip file named LastName_FistName_AsnX_CISC330.zip
• Put all .m files in the same folder
• Always include a main.m that calls all other files with proper. Do not require
entering parameters from the command line.
• Always include a PDF report answering all questions and providing the required
analysis of the results, as well as for any drawing, writing, image, etc. that you find
appropriate but does not fit in code comments. (No long essays are needed, and
all questions can be answered in a couple of sentences.
• If you include images, limit the size. No need for high-resolution images.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!