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
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...
Related questions
Question

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

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

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 3 steps with 3 images

Recommended textbooks for you

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 Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science

Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning

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 Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science

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
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning

Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education

Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY