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 th output file. If you want to see text contents of an OBJ file

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

 

 

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
●
Constraints:
-1
listName =
stringName.split(' ').
You can convert this list back into a string with
the statement
stringName
9
Examples (assumes that missing.obj does not exist within
your current directory):
>>> stretch_model('missing.obj',
'doesntmatter.obj')
=
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',
'.join(listName).
'triforce_stretched.obj')
3644
>>> stretch_model('teapot.obj',
'tall_teapot.obj')
triforce.obj
Example Screenshots: (using
http://masc.cs.gmu.edu/wiki/ObjViewer)
triforce_stretched.obj
teapot
Transcribed Image Text: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 ● Constraints: -1 listName = stringName.split(' '). You can convert this list back into a string with the statement stringName 9 Examples (assumes that missing.obj does not exist within your current directory): >>> stretch_model('missing.obj', 'doesntmatter.obj') = 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', '.join(listName). 'triforce_stretched.obj') 3644 >>> stretch_model('teapot.obj', 'tall_teapot.obj') triforce.obj Example Screenshots: (using http://masc.cs.gmu.edu/wiki/ObjViewer) triforce_stretched.obj teapot
In computer graphics, 3D objects are stored in files that
are meant to be loaded and displayed on the screen.
Although multiple file formats exist for 3D models, OBJ
is one of the most commonly used. These files are plain
text ending in .obj that contain the following:
1) A list of vertices that specifies the x,y,z
coordinates of each point in 3D space
2) A list of faces, each of which specifies the index
number of three points that form a triangle
Each vertex is listed on one line, and begins with the
letter v. The x, y, and z coordinates are included next,
separated by spaces. After all the vertices are done, each
face is then listed on one line beginning with the letter f.
The three index numbers are included next, starting with
1, also separated by spaces. For example, this OBJ file
contains a single triangle and would be displayed as
follows:
v -1.5 0.0 0.0
v 1.0 -2.0 0.0
v 0.0 1.5 0.0
f 1 2 3
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:In computer graphics, 3D objects are stored in files that are meant to be loaded and displayed on the screen. Although multiple file formats exist for 3D models, OBJ is one of the most commonly used. These files are plain text ending in .obj that contain the following: 1) A list of vertices that specifies the x,y,z coordinates of each point in 3D space 2) A list of faces, each of which specifies the index number of three points that form a triangle Each vertex is listed on one line, and begins with the letter v. The x, y, and z coordinates are included next, separated by spaces. After all the vertices are done, each face is then listed on one line beginning with the letter f. The three index numbers are included next, starting with 1, also separated by spaces. For example, this OBJ file contains a single triangle and would be displayed as follows: v -1.5 0.0 0.0 v 1.0 -2.0 0.0 v 0.0 1.5 0.0 f 1 2 3 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
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