Write a function stretch_model(fname_in, fname_out) that reads all the vertices and faces in the OBJ file specified by the string fname_in. The function should then transform the vertices to stretch the model by a factor of 2 along the y-axis, and then save the transformed vertices and faces to a file specified by the string fname_out. This function should return the total number of vertices that were stretched. If the specified file fname_in does not exist, stretch_model should instead return -1. To stretch the model along the y-axis, the y-coordinate for each vertex should be multiplied by 2. The x and z coordinates should not be affected. So, for the example given above, the output file would look like this (note that due to the OBJ model viewer automatically adjusting the boundaries, the image looks shortened rather than stretched): v -1.5 0.0 0.0 v 1.0 -4.0 0.0 v 0.0 3.0 0.0 f 1 2 3

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Plz help
You can use the example OBJ files in hw08files.zip
on Canvas to test your function. Verify that your output
looks correct using this online viewer:
http://masc.cs.gmu.edu/wiki/ObjViewer.
Hints:
• You only need to alter the vertex lines (the ones
starting with 'v'); the lines starting with 'f' can
just be copied directly from the input file into the
output file.
• If you want to see text contents of an OBJ file
rather than the 3D model, be sure to open the file
with a text editor (like Atom) and not something
like 3D Model Viewer.
• You can convert a line from the OBJ file into a list
with the statement
listName = stringName.split(' ').
• You can convert this list back into a string with
the statement
stringName=
Constraints:
Examples (assumes that missing.obj does not exist within
your current directory):
>>> stretch_model('missing.obj',
'doesntmatter.obj')
-1
You may use any string or list method that is
appropriate to solving this problem.
• All files must be properly opened and closed.
>>> stretch_model('triforce.obj',
9
'.join(listName).
'triforce_stretched.obj')
>>> stretch_model('teapot.obj',
'tall_teapot.obj')
3644
Example Screenshots: (using
http://masc.cs.gmu.edu/wiki/ObjViewer)
triforce.obj
triforce_stretched.obj
teapot
Transcribed Image Text:You can use the example OBJ files in hw08files.zip on Canvas to test your function. Verify that your output looks correct using this online viewer: http://masc.cs.gmu.edu/wiki/ObjViewer. Hints: • You only need to alter the vertex lines (the ones starting with 'v'); the lines starting with 'f' can just be copied directly from the input file into the output file. • If you want to see text contents of an OBJ file rather than the 3D model, be sure to open the file with a text editor (like Atom) and not something like 3D Model Viewer. • You can convert a line from the OBJ file into a list with the statement listName = stringName.split(' '). • You can convert this list back into a string with the statement stringName= Constraints: Examples (assumes that missing.obj does not exist within your current directory): >>> stretch_model('missing.obj', 'doesntmatter.obj') -1 You may use any string or list method that is appropriate to solving this problem. • All files must be properly opened and closed. >>> stretch_model('triforce.obj', 9 '.join(listName). 'triforce_stretched.obj') >>> stretch_model('teapot.obj', 'tall_teapot.obj') 3644 Example Screenshots: (using http://masc.cs.gmu.edu/wiki/ObjViewer) triforce.obj triforce_stretched.obj teapot
Write a function stretch_model(fname_in,
fname_out) that reads all the vertices and faces in the
OBJ file specified by the string fname_in. The function
should then transform the vertices to stretch the model by
a factor of 2 along the y-axis, and then save the
transformed vertices and faces to a file specified by the
string fname_out. This function should return the total
number of vertices that were stretched.
If the specified file fname_in does not exist,
stretch_model should instead return -1.
To stretch the model along the y-axis, the y-coordinate for
each vertex should be multiplied by 2. The x and z
coordinates should not be affected.
So, for the example given above, the output file would
look like this (note that due to the OBJ model viewer
automatically adjusting the boundaries, the image looks
shortened rather than stretched):
v -1.5 0.0 0.0
v 1.0 -4.0 0.0
v 0.0 3.0 0.0
f 1 2 3
Transcribed Image Text:Write a function stretch_model(fname_in, fname_out) that reads all the vertices and faces in the OBJ file specified by the string fname_in. The function should then transform the vertices to stretch the model by a factor of 2 along the y-axis, and then save the transformed vertices and faces to a file specified by the string fname_out. This function should return the total number of vertices that were stretched. If the specified file fname_in does not exist, stretch_model should instead return -1. To stretch the model along the y-axis, the y-coordinate for each vertex should be multiplied by 2. The x and z coordinates should not be affected. So, for the example given above, the output file would look like this (note that due to the OBJ model viewer automatically adjusting the boundaries, the image looks shortened rather than stretched): v -1.5 0.0 0.0 v 1.0 -4.0 0.0 v 0.0 3.0 0.0 f 1 2 3
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 3 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY